1

SSLStream を使用する Socket Server は、クライアントからの新しい接続を拒否することがあります。

私はtelentのホスト名ポートを使用しました。Connecting To host...

ポート 6002 でホストへの接続を開くことができませんでした: 接続に失敗しました

を使用netstat -aしましたが、TCP ステータスが次のように表示されます

TCP 0.0.0.0:6002 ホスト:0 リスニング

また、サービスもリッスンしていると思いtcpviewます。

クライアント側に表示されるエラーはconnection refused with error code 10061.

同じソケット サーバーが新しい接続を受け入れており、問題なく正常に動作します。しかし、しばらくすると上記の問題がランダムに発生します。

ソケットを再起動すると、正常に動作し、接続を受け入れますが、頻繁に実行したくありません。これは、既に接続されているクライアントを切断するためです。

誰かがこれをトラブルシューティングするのを手伝ってくれますか?

ありがとう。

4

2 に答える 2

0

どこで netstat を実行していますか? サーバー上?

  1. 宛先 IP アドレス 127.0.0.1 を使用して、localhost から (サーバー自体から) ソケットに接続してみてください。
  2. サーバーのネットワーク IP で同じテストを行います。

私の推測では、ファイアウォールが外部アクセスを妨げているか、間にあるルーターが接続を妨げていると思われます。

于 2012-04-06T21:43:41.340 に答える
0

しばらく動作し、その後停止します。私が考えることができるいくつかのオプション:

  1. 途中のいくつかのファイアウォールは、ある種のスロットリングを行います

  2. あまりにも多くの接続をすばやく開閉します。この場合、クライアント (通常) および/またはサーバーのエフェメラル ポートを使い果たします。netstat -a を実行すると、TIME_WAIT 状態のソケットが多数表示されます。これをクライアントとサーバーの両方で試してください。ここでの解決策は、接続を再利用することです (最良)。または、エフェメラル ポートの数を増やします (レジストリ設定)。しかし、これはこれまでのところしかありません。

  3. サーバーにバグがあり、しばらくすると新しい接続の受け入れが停止します。

于 2012-04-06T22:27:06.910 に答える