0

私はtcp-ipスタック、サーバー-クライアント接続を学んでいます。簡単なクライアントサーバーを作成しました。クライアントとサーバーは問題なく相互にデータを転送することができました。クライアントとサーバーを同じマシンで実行しています。ctrl + cでサーバーを閉じていたとき、カーネルがFINではなくRST信号を送信していたことがわかりました。(私の質問を参照してください:サーバーソケットのアクティブな閉鎖

もう少し調べてみると、クライアントの1つが読み取り呼び出し中であり、対応するサーバースレッドが無限のwhileループで何もしていないことに気付きました(私の側ではバグのあるダムコーディングがいくつかあります)。しかし、その無限のwhileループを削除すると、期待される動作が見られました。FINが両方向に送信されているのがわかりました。

それで、なぜtcpレイヤーが最初のケースでRSTを送信していたのか疑問に思います。

4

1 に答える 1

0

最終的には、相手がデータを受け入れるのを待つことをあきらめます。

于 2013-02-08T01:51:18.853 に答える