26.2. TCP_NODELAY の有効化

イベントが発生すると、TCP_NODELAY オプションは遅滞なくバッファー書き込みをカーネルに送信します。setsockopt() 関数を使用して TCP_NODELAY を有効にします。

手順

  1. 次の行を TCP アプリケーションの .c ファイルに追加します。

    int one = 1;
    setsockopt(descriptor, SOL_TCP, TCP_NODELAY, &one, sizeof(one));
  2. ファイルを保存して、エディターを終了します。
  3. パフォーマンスの低下を防ぐために、以下の回避策のいずれかを適用します。

    • メモリー内に連続したパケットを構築し、TCP_NODELAY で設定したソケット上で論理パケットを TCP に送信する。
    • I/O ベクターを作成し、TCP_NODELAY が設定されたソケット上で writev を使用してカーネルに渡す。