MSDN说如下: “调用len参数为零的发送是允许的,并且将被实现视为成功。在这种情况下,send将返回零作为有效值。对于面向消息的套接字,将发送零长度传输数据报。”< / p>
我的问题是,如果len参数不为零,阻塞send()是否会返回0(假设没有设置超时)?
我还搜索了互联网,发现了以下内容:
http://tangentsoft.net/wskfaq/articles/bsd-compatibility.html
“在Winsock下,SIGPIPE / EPIPE功能根本不存在:send()将返回0表示正常断开连接,或者-1表示异常断开连接”。
然而,无论我怎么尝试,我都无法模拟“正常断开连接”,因此我不能让send()返回0。
提前致谢。
答案 0 :(得分:0)
“正常”断开是指接收方在其连接结束时调用closesocket()
以向发送方发送FIN
数据包。当send()
检测到FIN
时,它知道连接已正常断开连接,并应返回0以通知您的代码。