是否可以使用重叠的I / O启动TCP连接请求,并在Windows中完成连接之前取消它?我需要至少支持Windows XP SP2。
答案 0 :(得分:6)
ConnectEx
允许重叠连接尝试。
要取消此操作,需要使用CancelIo
传递SOCKET
,就像它是HANDLE
一样(确实如此)。但是这个必须从调用ConnectEx
的同一个线程完成。管理事物以便您可以轻松实现该线程的特异性。
在XP / 2003之后(即Vista / 2008/8 / 2008R2),您可以使用来自不同线程的CancelIoEx
(OVERLAPPED
实例用于完全识别IO操作)。
答案 1 :(得分:0)
来自here:
重叠
此目录包含使用重叠的示例服务器程序 I / O。示例程序使用AcceptEx函数和重叠的I / O. 处理来自客户端的多个异步连接请求 有效。服务器使用AcceptEx函数进行多路复用 单线程Win32应用程序中的不同客户端连接。 使用重叠I / O可以实现更高的可伸缩性。