【发布时间】:2017-07-15 09:06:21
【问题描述】:
有没有办法在 Windows 中退出阻塞的 connect() 调用?
请注意,我不想切换到非阻塞套接字。
【问题讨论】:
-
不是答案,因为我在这里没有参考资料,但我隐约记得这是不可能的。
-
也许
CancelIoEx可以满足您的需求?见msdn.microsoft.com/de-de/library/windows/desktop/… -
为什么不使用ConnectEx?
-
您可以从单独的线程关闭套接字,或者在非阻塞模式下进行连接,然后在成功后切换回阻塞模式,并使用
select()轮询完成。或者只是等待连接超时,大约一分钟。 -
@Steve 您不需要将所有内容更改为非阻塞。只需在调用
connect()之前将套接字置于非阻塞模式,然后在建立连接后将其恢复为阻塞模式。