[英]send about UDP socket in C and C++
在這種情況下,另一端的recv緩沖區已滿,“發送”可能會失敗,因此我可以使用“選擇”來測試其是否可寫,以便“發送”可以返回成功?
您正在使用UDP。 數據包被發送,並且如果接收端的接收緩沖區已滿,則接收系統將丟棄它。 閱讀此內容: https : //en.wikipedia.org/wiki/User_Datagram_Protocol#Reliability_and_congestion_control_solutions
send()
調用的結果將完全獨立於接收者的狀態。 即使接收方不存在,它也會返回成功。
有關UDP如何處理大於基礎網絡的數據包大小的數據報,請參見此內容。 發送成功但無法接收大緩沖區
通常,除非內核中的本地(發送)緩沖區已滿,否則send()
不會阻塞,並且始終返回寫入的字節數。 對於UDP套接字,這基本上不會發生。 對於TCP套接字,如果您編寫的速度超出鏈接或接收方的處理能力,則會發生這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.