非阻塞 socket 在send之后返回 WSAEWOULDBLOCK分析
摘要:
首先,Winsock 异常 10035 WSAEWOULDBLOCK (WSAGetLastError) 的意识是 Output Buffer 已经满了,无法再写入数据。确切的说它其实不算是个错误,出现这种异常的绝大部分时候其实都不存在 Output Buffer 已满情况,而是处于一种“忙”的状态,而这种“忙”的状态还很大程度上是由于接收方造成的。意思就是你要发送的对象,对方收的没你发的快或者对方的接受缓冲区已被填满,所以就返回你一个“忙”的标志,而这时你再发多少数据都没任何意义,所以你的系统就抛出个 WSAEWOULDBLOCK 异常通知你,叫你别再瞎忙活了。那么,我该怎么办呢?网上有很多 阅读全文
posted @ 2011-10-11 16:56 景树园 阅读(2289) 评论(0) 推荐(2)
浙公网安备 33010602011771号