我没有提供我的特定代码,因为它太多了。无论如何,我怀疑我在使用 C# 构建的自定义 Tcp 异步服务器中遇到了孤立的套接字问题。它针对框架 4,并且是生产服务(问题仅出现在生产中)。关于套接字的一般调试,我有两个问题。
如何确定我是否有孤立的套接字?一些性能计数器或类似的?
TcpClient.Close() 立即关闭所有底层流不是真的吗?我看到了相互冲突的帐户,所以我担心由于服务没有明确关闭底层流,这可能是问题的根源(如果确实是孤立的套接字)。
LingerState
您的财产的价值TcpClient
。此外,.NETTcpClient.Close()
方法调用最终会导致调用ws2_32.dllshutdown()
中的 WINAPI函数,因此,如果您正在调试,则可以链接到调试库并在调用时放置断点等。shutdown()