天天看點

C語言網絡程式設計:TCP程式設計模型

程式設計模型

TCP程式設計模型如下

C語言網絡程式設計:TCP程式設計模型

TCP伺服器的工作過程如下:

  • 伺服器建立一個專門的“檔案描述符”來監聽來自用戶端的“三次握手”,然後建立連結
  • 連結建立成功後,伺服器會配置設定一個專門的“通信檔案描述符”,用于實作與該用戶端的通信

以上通信模型是由于TCP本身的特點:面向連接配接的,可靠的,位元組流通信方式

通信過程

伺服器:

  • 建立套接字,傳回套接字的檔案描述符​

    ​skfd = socket()​

  • 将套接字檔案描述符、ip、端口号綁定在一起,建立固定的對應關系​

    ​bind()​

  • 将套接字檔案描述符轉為被動描述符,用于被動監聽用戶端連結​

    ​listen()​

  • 與用戶端三次握手成功,傳回一個通信描述符 ​

    ​fd=accept()​

  • 伺服器向用戶端發送、接收資料 ​

    ​write(fd);send(fd)​

    ​​,​

    ​read(fd);recv(fd);​

  • 四次揮手斷開連接配接,可以由任意方發起​

    ​close(fd);shutdown(fd)​

  • 建立套接字檔案​

    ​skfd = socket()​

  • 主動向伺服器發起連結請求,三次握手OK後即連結成功 ​

    ​connet(skfs..)​

  • 用戶端向伺服器發送資料 ​

    ​write(skfd);send(skfd)​

  • 用戶端接收伺服器資料 ​

    ​read(skfd);recv(skfd)​

  • 四次揮手斷開連結,可以由任意方發起​

    ​close(fd);shutdown(fd)​

繼續閱讀