1.流式套接字
使用這種套接字時,數據在客戶端是順序發送的,並且到達的順序是一致的。比如你在客戶端先發送1,再發送2,那么在服務器端的接收順序是先接收到1,再接收到2,流式套接字是可靠的,是面向連接的;
2.數據報套接字
這種套接字是無連接的,數據是打包成數據包發送的,到達的順序不一定與發送的順序是一致的,並且數據不一定是可達的,並且接收到的數據還可能出錯。
既然這樣那為什么還要使用這種套接字呢?因為現每個使用udp的程序都有自己的對數據進行確認的協議。如TFTP協議規定了每收到一個消息比如, TFTP 協議定義了對於每一個發送出去的數據包,遠程在接受到之后都要回送一個數據包告訴本地程序: “我已經拿到了!(一 ”個 “ACK” 包) 。如果數據包發的送者在 5 秒內沒有的得到回應,它就會重新發送這個數據包直到數據包接受者回送了 “ACK” 信號。這些知識對編寫一個使用 UDP 協議的程序員來說是非常必要的。