流式套接字(SOCK_STREAM),數據報套接字 (SOCK_DGRAM) 的比較


1.流式套接字

使用這種套接字時,數據在客戶端是順序發送的,並且到達的順序是一致的。比如你在客戶端先發送1,再發送2,那么在服務器端的接收順序是先接收到1,再接收到2,流式套接字是可靠的,是面向連接的;

2.數據報套接字

這種套接字是無連接的,數據是打包成數據包發送的,到達的順序不一定與發送的順序是一致的,並且數據不一定是可達的,並且接收到的數據還可能出錯。

既然這樣那為什么還要使用這種套接字呢?因為現每個使用udp的程序都有自己的對數據進行確認的協議。如TFTP協議規定了每收到一個消息比如, TFTP 協議定義了對於每一個發送出去的數據包,遠程在接受到之后都要回送一個數據包告訴本地程序:    “我已經拿到了!(一  ”個 “ACK” 包)    。如果數據包發的送者在 5 秒內沒有的得到回應,它就會重新發送這個數據包直到數據包接受者回送了 “ACK” 信號。這些知識對編寫一個使用 UDP 協議的程序員來說是非常必要的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM