struct linger構造体の作用の詳細

965 ワード

struct linger構造体の作用の詳細
TCP接続が切断された時にCosesocket関数を呼び出して、優雅な切断と強制的な切断の2つの方式があります.
接続を切断する方法はどう設定しますか?socketを設定することにより、説明は一つのlingerとなります.
構造体
を選択します
リンガー構造体
データ構造
以下のとおりです
  struct linger
  {
    int l_onoff;
    int l_linger;
  };
三つの組み合わせがあります.
最初の種類:
l_オンオフ=0& 
l_linger無視
この方式では、closesocketの時にすぐに戻って、下の階で未送信のデータを送信してから資源を放出します.
優雅な脱退です.
第二種類:l_オンオフはゼロではありません l_linger=0;
       このように、closesocketを呼び出した時もすぐに戻りますが、送信されていないデータは送られません.RESTパッケージを通して強制的にsocket記述子を閉じます.つまり強制的に終了します.
第三種類:l_オンオフはゼロではありません l_linger>0
       この方式では、closesocketを呼び出すとすぐには戻りません.カーネルはしばらく遅延します.この時間はl_です.リンガーの値は決定します.タイムアウト時間が到着する前に、未送信のデータ(FINパケットを含む)を送信し、他端の確認を得ると、closesocketは正しい戻ります.socket記述子は優雅に終了します.そうでなければ、closesocketは直接エラー値を返します.送信されていないデータが失われ、socket記述子は強制的に終了されます.注意する必要がある場合、socket記述子は非塞栓型に設定されていると、closesocketは直接値を返します.
Linuxではヘッダファイルを含む必要があります.