3

是否可以使用重叠 I/O 发起 TCP 连接请求,并在 Windows 中连接完成之前取消它?我需要至少支持 Windows XP SP2。

4

2 回答 2

6

ConnectEx允许重叠的连接尝试。

要取消这个,需要使用CancelIo传递,SOCKET就好像它是一个HANDLE(确实如此)。但这必须从调用ConnectEx. 管理事物以实现线程特异性并非易事。

XP/2003之后(即Vista/2008/8/2008R2)可以CancelIoEx从不同的线程使用(OVERLAPPED实例用于完全识别IO操作)。

于 2011-10-10T14:57:28.790 回答
0

这里

重叠

该目录包含一个使用重叠 I/O 的示例服务器程序。示例程序使用 AcceptEx 函数和重叠 I/O 来有效地处理来自客户端的多个异步连接请求。服务器使用 AcceptEx 函数在单线程 Win32 应用程序中多路复用不同的客户端连接。使用重叠 I/O 可以实现更大的可扩展性。

于 2011-10-10T14:54:09.030 回答