我正在尝试通过非阻塞 connect() 连接到另一台机器上的服务器。
但是,当我这样做时,Connect() 返回 -1,并且我从 WSAGetLastError() 收到 WSAEWOULDBLOCK。
MSDN 文档指出: WSAEWOULDBLOCK 报告为在非阻塞 SOCK_STREAM 套接字上调用 connect 的结果是正常的,因为必须经过一段时间才能建立连接(参考)。
问题是我总是收到错误,即使我的服务器没有运行,也会从 connect() 返回 -1。
正如建议的那样,我的套接字是 SOCK_STREAM 套接字。我该如何补救?我是否应该在 connect() 调用后提供超时以确保有足够的时间让 connect 建立连接?