1

TCP クライアントが TCP サーバーとの TCP 接続を確立した場合。その後、TCP クライアントはサーバーにパケットを送信しません。

まず、TCP サーバーの近くにあるファイアウォールが RST を送信する可能性があることを大まかに知っています。または、TCP 接続を強制的に終了させるキープアライブ タイムアウトがあります。でも、何が起こるか正確にはわかりません。誰か少し説明してもらえますか?

次に、終了させたくない限り、この TCP 接続を維持することは可能ですか?

TCP サーバーがこの TCP 接続を TCP スタックに保持できることを願っています。しかし、TCP クライアントを関与させたくありません。クライアントに KEEP-ALIVE メッセージを送信させたくありません。他の第三者機関が関与することは望んでいません。TCP クライアントが接続を失ったかどうかは気にしません。TCP サーバーのソース コードを書いているときに、ソース コードがサーバー上で TCP 接続を維持できることを願っています。

注: 私のプログラミング言語は LINUX C です

ありがとう!

4

1 に答える 1

0

エンドでキープアライブを有効にすると、定期的にプローブが送信され、応答がない場合はエンドで接続がリセットされます。キープアライブはデフォルトでオフになっているため、最後に有効にしないと有効になりません。

ただし、ピアは自分の側でそれを有効にすることができます。その場合、ピアの側は上記のように動作し、それを防ぐことも検出することもできません。

残りの質問は意味がありません。クライアントまたはファイアウォールは、さまざまな理由でいつでも RST を送信できます。それを防ぐことはできませんし、コード内で無視することもできません。何らかの理由でどこかで接続がリセットされた場合、維持する接続はありません。

TCP が必要ない場合は、別のものを使用してください。

于 2013-05-30T23:10:45.160 に答える