UDP呼叫connect 的作用

2021-06-09 23:12:59 字數 351 閱讀 1112

我們都知道,udp是無連線的,但是為什麼協議讓udp也可以呼叫connect()?

1.因為udp可以是一對一,多對一,一對多,或者多對多的通訊,所以每次呼叫sendto()/recvfrom()時都必須指定目標ip和埠號。通過呼叫connect()建立乙個端到端的連線,就可以和tcp一樣使用send()/recv()傳遞資料,而不需要每次都指定目標ip和埠號。但是它和tcp不同的是它沒有三次握手的過程。

2.還可以通過在已建立連線的udp套接字上,再次呼叫connect()實現以下功能:

a.指定新的ip位址和埠號。

b.斷開連線。

這也與tcp有所不同,tcp套接字只能呼叫一次connect()函式。

在udp中使用connect

近日一直在學習 unix網路程式設計 第1卷 套介面api 再次重新認識了udp,糾正了不少以前錯誤的認識和觀念。在udp中使用connect 1.不能給輸出操作指定伺服器ip位址埠號,也就是說不能使用sendto而改用write或send。伺服器ip由connect指定。2.接收操作不必使用rec...

TCP UDP與connect系統呼叫

一 tcp與udp區別 tcp保證資料正確性,udp可能丟包 tcp保證資料順序,udp不保證。tcp 傳輸控制協議,提供的是面向連線 可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,...

9 呼叫connect連線超時

簡單來說,連線超時就是當客戶端呼叫connect函式跟服務端建立連線,等待一段時間後,最後connect函式返回etimedout錯誤,建立連線失敗。那麼連線超時具體是怎麼出現的呢?一般是客戶端呼叫connect傳送的syn報文在網路傳輸過程中發生網路擁塞,導致報文丟失或服務端收到syn,但未及時響...