winapi - 具有重叠 I/O 的 TCP 连接

标签 winapi tcp winsock overlapped-io request-cancelling

是否可以在 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/

相关文章:

QTcpSocket 高频写入减慢传输速率

c++ - 正在更改的 SFML TCP 数据包

c++ - 套接字编程中如何发送长度大于缓冲区的消息?

unicode - 通过 TCP 接收 Unicode 字符

c++ - flash.net.Socket 和 C++ winsock WSAECONNRESET

c++ - 将两个字符串相加以创建一个新的 LPSTR

winapi - 访问段寄存器 MASM

c++ - 如何使用 WriteConsoleInput/WriteConsole 将 Return/Enter 字符发送到控制台

delphi - 在什么条件下,TForm 会在显示时触发 OnResize?

tcp - WSASend() 是否隐藏了大缓冲区的批处理?