1

我没有提供我的特定代码,因为它太多了。无论如何,我怀疑我在使用 C# 构建的自定义 Tcp 异步服务器中遇到了孤立的套接字问题。它针对框架 4,并且是生产服务(问题仅出现在生产中)。关于套接字的一般调试,我有两个问题。

  1. 如何确定我是否有孤立的套接字?一些性能计数器或类似的?

  2. TcpClient.Close() 立即关闭所有底层流不是真的吗?我看到了相互冲突的帐户,所以我担心由于服务没有明确关闭底层流,这可能是问题的根源(如果确实是孤立的套接字)。

4

1 回答 1

0
  1. 尝试http://www.nirsoft.net/utils/socket_sniffer.html来监控您机器上打开的套接字。
  2. 检查LingerState您的财产的价值TcpClient。此外,.NETTcpClient.Close()方法调用最终会导致调用ws2_32.dllshutdown()中的 WINAPI函数,因此,如果您正在调试,则可以链接到调试库并在调用时放置断点等。shutdown()
于 2012-05-07T00:48:54.117 回答