我正在尝试通过非阻塞connect()连接到另一台机器上的服务器。
但是,当我这样做时,Connect()返回-1,并且我从WSAGetLastError()接收WSAEWOULDBLOCK。
MSDN文档声明:WSAEWOULDBLOCK被报告为在非阻塞SOCK_STREAM套接字上调用connect的结果是正常的,因为必须经过一些时间才能建立连接(参考)。
问题是,我总是收到错误,-1从connect()返回,即使我的服务器没有运行。
我的套接字是一个SOCK_STREAM套接字,正如建议的那样。我该如何补救呢?我是否应该在connect()调用之后提供一个超时,以确保connect有足够的时间来建立连接?
使用ConnectEx
,传递OVERLAPPED
结构。这样,当连接尝试完成后,您就可以检索实际状态。