ITPub博客

首页 > 数字化转型 > ERP > (zz)WSAEWOULDBLOCK 与 FD_WRITE 说明

(zz)WSAEWOULDBLOCK 与 FD_WRITE 说明

原创 ERP 作者:exocet 时间:2008-09-09 11:51:56 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/38085/viewspace-1010432/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    45
  • 访问量
    1677082