是否可以使用重叠 I/O 发起 TCP 连接请求,并在 Windows 中连接完成之前取消它?我需要至少支持 Windows XP SP2。
问问题
2271 次
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 回答