2016-05-12 3 views
1

TCPリスニングを開くと、 "9870"のような固定ポートが使用されます。 これに接続するクライアントは、 "1024、1025"などの異なるポートを使用します。私はこのポートの名前が "クライアントポート"、 "ダイナミックポート"、または "エフェメラルポート"であるかどうかわかりませんが、このクライアントポートを変更できるかどうかを知る必要があります。 2番目のイメージと同様に、「ポート番号を再利用しました」というエラーが表示されるため、これはこのポート構成に関連していると思います。9870ポートのTCPリスニングサーバー。クライアントポートを設定することは可能ですか?

これらのポートを設定できると、ネットワーク上の機器の接続が安定すると思います。

netstat

WireShark error

答えて

2

TL; TRは:クライアントの送信元ポートを設定する必要は通常ありません、あなたは間違いなく、サーバでクライアントの送信元ポートを設定することはできません。

クライアントは、サーバーが実行できるのと同じ方法でアドレス+ポートにバインドでき、このポートは接続の送信元ポートとして使用されます。しかし、通常これは行われず、代わりにソケットが特別にバインドされておらず、システムによって空きソースポートが自動的に割り当てられます。クライアントの送信元ポートは、クライアント自身によってのみ設定され、サーバーによって変更することはできません。

通常、OSはクライアントにこれをさせないため、ポート番号がクライアントによって再利用されることはありません。しかし、クライアントがクラッシュすると、あなたが見るものが起こります。再起動後、クライアントはリブート前に確立された(そして閉じられたことのない)接続を認識しないので、同じソースポートを再びうまく使用します。この場合、新しいデータは古い接続と一致しないため、サーバーからRSTを取得します。

これは、クライアントがNATを実行する一部のルータに接続され、ルータがクラッシュした場合にも発生します。再起動後、ルーターは以前の接続を認識しないため、古い接続と競合する可能性のある新しい変換を作成します。

+0

この解決策では、私は切断について非常に問題がありますが、私はそれが別のものに関連していると思います。 (https://www.dropbox.com/s/mnkbbb2gogpbczb/Capturar.JPG?dl=0) –

+0

@BrunoYuzo:私はあなたがこの写真で私に何を教えようとしているのか分かりません。 1つの写真は、価値がある価値があると言われていますが、実際にその問題を説明する多くの言葉が好きでした。 –

+0

この画像には、ポート9870の "HostAcesso.exe"で開かれたTCPリスンがあります。このリスニングで接続されている機器は、接続を頻繁に開いたり閉じたりしています。私は問題がクライアントポートに関連していましたが、あなたの説明ではおそらく別のものです。 –

関連する問題