《TCP/IP網絡編程》第4章 筆記&代碼&註釋

TCP

TCP Transmission Control Protocol 傳輸控制協議,意爲對數據傳輸過程的控制。

TCP/IP 協議棧

TCP/IP 協議棧分四層:

  1. 應用層
  2. TCP層/UDP層
  3. IP層
  4. 鏈路層

根據2.的TCP套接字還是UDP套接字收發數據,他們的協議棧各不相同。

鏈路層

物理連接領域標準化的結果,是最基本的領域,定義LAN、WAN、MAN等網絡標準。

IP層

IP本身是面向消息、不可靠的協議,每次傳輸數據他來選擇路徑,但並不一致,如若發生路徑錯誤,則會選擇其他路徑;若數據丟失,則無法解決。

TCP層/UDP層

TCP保證可靠的數據傳輸,他發送數據時以IP層爲基礎。

UDP則不保證數據傳輸的可靠性。

根據應用性質選擇使用TCP/UDP層。

應用層

根據程序特點性質決定服務器和客戶端之間的數據傳輸規則。

基於TCP服務器端/客戶端

socket() bind() listen() accept()

read()/write()  Linux

recv()/send() Windows

close()
創建套接字 分配套接字地址 等待連接請求狀態 允許連接 數據交換 斷開連接

listen()進入等待連接請求狀態

SOCKET hServerSock;
//......
listen(hServerSock, 5);//Windows

第一個參數:套接字的句柄。

第二個參數,等待隊列的長度,這裏的5表示最多五個鏈接請求進入隊列。

實現迭代服務器/客戶端

第一章中,服務器處理了一次客戶端的連接請求就結束了運行,listen()中第二個參數沒有多大意義。

爲了多次處理,需要編寫迭代服務器端/客戶端。

回聲(echo)服務端/客戶端

socket() bind() listen() accept()

read()/write()  Linux

recv()/send() Windows

close()
創建套接字 分配套接字地址 等待連接請求狀態(回到這裏) 允許連接 數據交換 斷開連接(回到listen()運行後狀態)

代碼:

https://github.com/ChristmasError/TCP-IP-Network-programming/tree/master/%E7%AC%AC%E5%9B%9B%E7%AB%A0%20%E5%9F%BA%E4%BA%8ETCP%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%26%E5%AE%A2%E6%88%B7%E7%AB%AF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章