1

多すぎるので、特定のコードは提供していません。とにかく、C# で構築されたカスタム Tcp 非同期サーバーでソケットが孤立するという問題があると思います。これはフレームワーク 4 を対象としており、実稼働サービスです (問題は実稼働でのみ発生します)。ソケットの一般的なデバッグに関して 2 つの質問があります。

  1. 孤立したソケットがあるかどうかを確認するにはどうすればよいですか? いくつかの perfmon カウンターまたは同様のものはありますか?

  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 に答える