我知道WSASocket
和closesocket
的调用成本很高,而且我知道使用DisconnectEx
标志调用的TF_REUSE_SOCKET
使断开连接的套接字能够再次传递给{{ 1}}。
尽管这在Windows 8.1及更高版本上应该可以使用,但我现在正在开发Windows 7,并且正在开发 Windows 7,并且如果我没记错,AcceptEx
返回一个错误,如果用{{ 1}}标志,或者如果没有导致任何错误,则使用该套接字调用DisconnectEx
肯定会导致某些错误。
官方文档说TF_REUSE_SOCKET
应该在Windows 8.1或更高版本下使用,所以这并不奇怪。
还有其他方法可以重用套接字吗?
例如通过方法重置它,或以某种方式清除其内部结构,或者是否存在任何“ hack”只是翻转标志或清除该套接字“ instance”中的变量以使其能够接受新连接?
也许我能以某种方式获得基本结构(AcceptEx
)的内存地址,如果可能的话,我应该在其中重写什么以使其可重用?