是否可以通过重叠I/O启动TCP连接请求,并在Windows中完成连接之前取消它?我需要至少支持Windows XP SP2。具有重叠I/O的TCP连接
3
A
回答
6
ConnectEx
允许重叠连接尝试。
要取消这一个将需要使用CancelIo
通过SOCKET
就好像它是一个HANDLE
(这是真的)。但是这个必须是从调用ConnectEx
的同一个线程完成的。管理事情,以便您可以实现该线程的特异性不太容易。
在XP/2003(即Vista/2008/8/2008R2)之后,您可以使用来自不同线程的CancelIoEx
(OVERLAPPED
实例用于完全识别IO操作)。
0
从here:
重叠
该目录包含使用重叠 I/O的样品服务器程序。示例程序使用AcceptEx函数和重叠的I/O 来有效地处理来自客户端 的多个异步连接请求。服务器使用AcceptEx函数在单线程Win32应用程序中复用不同的客户端连接。 使用重叠I/O可实现更高的可伸缩性。
相关问题
- 1. 问题与IO ::套接字TCP连接
- 2. 错误处理重叠套接字IO
- 3. Flink Table API:连接具有重叠字段名称的表
- 4. QNetworkAccessManager,重置TCP连接
- 5. 测量TCP连接延迟的工具
- 6. 具有IO异常的C#TCP/IP客户端
- 7. MySQL TCP连接
- 8. TCP/IP连接
- 9. TCP/IP连接
- 10. Java - TCP连接
- 11. TCP连接池
- 12. iphone tcp连接
- 13. 具有空闲连接功能的Akka Tcp服务器
- 14. TIME_WAIT中的tcp连接将不允许重新连接,java
- 15. 重叠的IO或文件映射?
- 16. Winsock的非阻塞IO重叠仍块
- 17. WSASYSCALLFAILURE与Windows XP上的重叠IO
- 18. 断开或重新加载Io套接字重置连接
- 19. 重定向一个TCP连接
- 20. 自动重新连接到TCP主机
- 21. System.Net.WebRequest - TCP连接重用/缓存?
- 22. 重新连接后TCP数据丢失。
- 23. 终止现有的tcp连接
- 24. net.connect:重新连接TCP net.connects产量连接ECONNREFUSED
- 25. 如何使node.js TCP连接自动重新连接?
- 26. 如何检测套接字IO中的重新连接事件
- 27. TCP连接寿命
- 28. 纯Swift TCP连接
- 29. TCP连接失败
- 30. TCP连接,蟒蛇
您也可以简单地通过关闭套接字取消连接尝试; ConnectEx()将失败... –
@Richard:太棒了,谢谢!我将从发出调用ConnectEx()的同一个线程中取消,所以这不会成为问题。但是,有没有人知道TCP级别会发生什么?假设SYN已经发送,将取消连接向对方发送RST,还是将它保持握手挂? –