(zz)WSAEWOULDBLOCK 与 FD_WRITE 说明

http://redsoft.ycool.com/post.2904269.html

WinSock Tips

1. WSAEWOULDBLOCK 错误说明

在非锁定套接字上

函数名 说明
WSAAccept, accept 应用程序没有收到连接请求,再次调用,便可检查连接情况
closesocket 大多数情况下,这个错误意味着已随SO_LINGER选项一道调用了
setsockopt,而且已设定了一个非零的超时值
WSAConnect, connect应用程序已初始化,再次调用,便可检查是否完成
WSARecv,recv
WSARecvFrom, recvfrom
没有收到数据,销后再次检查
WSASend, send
WSASendTo, sendto
外出数据无缓冲区可用,销后再试


2. FD_WRITE 触发条件

只有在三种条件下,才会发出 FD_WRITE 通知
. connect, WSAConnect ,一个套接字首次建立了连接
. accept, WSAAccept, 套接字被接受以后
. send, WSASend, sendto, WSASendTo操作失败,返回了 WSAEWOULDBLOCK 错误,而且缓冲
再次变得可用时

[@more@]If no incoming data is available at the socket, the recv call blocks and waits for data to arrive according to the blocking rules defined for WSARecv with the MSG_PARTIAL flag not set unless the socket is nonblocking. In this case, a value of SOCKET_ERROR is returned with the error code set to WSAEWOULDBLOCK. The select, WSAAsyncSelect, or WSAEventSelect functions can be used to determine when more data arrives.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/38085/viewspace-1010432/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/38085/viewspace-1010432/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值