是否可以在 Windows 中发起具有重叠 I/O 的 TCP 连接请求,并在连接完成之前取消它?我需要至少支持 Windows XP SP2。
最佳答案
ConnectEx
允许重叠连接尝试。
要取消这个需要使用 CancelIo
像传递 HANDLE
一样传递 SOCKET
(确实如此)。但是这必须从调用 ConnectEx
的同一个线程完成。管理事物以实现线程特异性不太容易。
XP/2003(即Vista/2008/8/2008R2)之后你可以使用CancelIoEx
来自不同的线程(OVERLAPPED
实例用于完全识别 IO 操作)。
关于winapi - 具有重叠 I/O 的 TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714574/