[英]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.