WSAEventSelect异步连接产生10004异常
WSAEventSelect异步连接产生10004错误?
问题:
WSAEventSelect(socket, event, FD_CONNECT);
connect(socket, &sockaddr, &nLen);
WSAWaitForMultipleEvents()
WSAEnumNetworkEvents();
查看WSANETWORKEVENTS结构体中的iErrorCode
获得错误信息:10004---A blocking operation was interrupted by a
call to WSACancelBlockingCall!
连接环境是同一内网的一台PC,但其连接端口没有开,多数情况下iErrorCode
获得错误为10061即连接被拒绝,这是正常的;但偶尔出现10004错误,不知原
因何在?
------解决方案--------------------
是不是重复使用了connect失败的socket句柄?仔细看看代码?
------解决方案--------------------
如果在TCP3次握手过程中被Reset返回的错误就是10061,一般是端口没打开。10004可能是服务器端口打开了,但是在3次握手中超时。通常是服务器的服务器是监听端口的Backlog满了。
------解决方案--------------------
by a call to WSACancelBlockingCall!?是你程序处理不当吗?
问题:
WSAEventSelect(socket, event, FD_CONNECT);
connect(socket, &sockaddr, &nLen);
WSAWaitForMultipleEvents()
WSAEnumNetworkEvents();
查看WSANETWORKEVENTS结构体中的iErrorCode
获得错误信息:10004---A blocking operation was interrupted by a
call to WSACancelBlockingCall!
连接环境是同一内网的一台PC,但其连接端口没有开,多数情况下iErrorCode
获得错误为10061即连接被拒绝,这是正常的;但偶尔出现10004错误,不知原
因何在?
------解决方案--------------------
是不是重复使用了connect失败的socket句柄?仔细看看代码?
------解决方案--------------------
如果在TCP3次握手过程中被Reset返回的错误就是10061,一般是端口没打开。10004可能是服务器端口打开了,但是在3次握手中超时。通常是服务器的服务器是监听端口的Backlog满了。
------解决方案--------------------
by a call to WSACancelBlockingCall!?是你程序处理不当吗?