Linux的UDP編程基礎

和TCP一樣,同樣的基礎通信模型

基礎學習的話還是按照上面的模式寫代碼把。

與TCP不同的是雖然上面的模型圖有服務器和客戶機的分別,但其實收發雙方有着同等的地位。原因在於此模型中並沒有用到connect()函數,建立的是無連接的網絡通信。說白了你這裏的readfrom和sendto函數就指明瞭你要發送的目標機地址。當然UDP中也可以使用connect()函數建立連接,只是此模型未用到。

這裏只說明幾點容易出錯的地方。

1.無連接的通行並不意味這不用綁定套接字。bind()函數是必須的尤其是客戶端,我的理解是bind()是在通信之前本主機自己的初始化行爲,是網絡內其他主機訪問本主機的網絡標識所以作爲服務器一定要進行地址綁定。而客戶端因爲並不需要被其他主機訪問所以無需綁定。

需要源碼的在這:https://download.csdn.net/download/qq_41281601/10649845(留言私發,這怎麼設免費下載啊?)

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