0

ソケットに問題があります。メッセージを送信するために、コンピューターと電話の間にソケットを作成しています。サーバーまたはクライアントを閉じると、FIN パケットが送信され、1 分間ほど FIN_WAIT2 状態のままになります。ただし、反対側は CLOSE_WAIT 状態でスタックし、明らかにソケットを閉じることができません。ソケットはすぐに閉じられるべきだと思うので、サーバーがソケットを閉じたいときにソケットを閉じるコードをクライアントに実装する必要があるかもしれません。どうやってやるの?

4

2 に答える 2

2

ソケット チャネルの両端を閉じる必要があります。

サーバーがクライアントへの接続を閉じる場合、最後のFINパケットを (クライアントからサーバーに) 送信するために、クライアントはクライアント側で接続を閉じる必要があります。これにより、 TCP ステート マシンで最後の状態遷移がトリガーされます。

于 2013-02-11T13:26:28.030 に答える
0

CLOSE_WAIT は、ピアが FIN を送信し、TCP がローカル アプリケーションがソケットを閉じるのを待っていることを意味します。RFC 793 を参照してください。自動的には行われません。

于 2013-02-12T10:13:07.233 に答える