日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C语言网络编程:TCP编程模型

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言网络编程:TCP编程模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編程模型

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)

以上流程中可以看到服務器在與客戶端通信過程中的收發數據使用的是新的文件描述符fd,而客戶端收發數據使用的是創建socket時的描述符skfd,這里服務器是需要支持多客戶端鏈接;即每個客戶端與服務器進行鏈接后服務器都會創建一個新的文件描述符fd,用于單獨和該客戶端進行通信。

總結

以上是生活随笔為你收集整理的C语言网络编程:TCP编程模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。