1. ホーム
  2. c

[解決済み] POSIXソケットをフラッシュする方法はありますか?

2022-02-10 01:45:11

質問

POSIXソケットの送信側をリモート側までフラッシュするための標準的な呼び出しはありますか、それとも、ユーザレベルのプロトコルの一部として実装する必要がありますか? 通常のヘッダを見て回りましたが、何も見つかりませんでした。

どのように解決するのですか?

Unix ドメインのソケットの場合は fflush() しかし、おそらくネットワーク・ソケットのことだと思います。 ネットワークソケットにはフラッシュという概念はありません。 一番近いのは

  1. セッションの終了時に shutdown(sock, SHUT_WR) を使用して、ソケットへの書き込みをクローズアウトします。

  2. TCPソケットでは、sockoptを使用してNagleアルゴリズムを無効にします。 TCP_NODELAY これは一般にひどい考えで、最初の調査では対処しているように見えても、確実にあなたの望むことを行うことはできません。

ユーザープロトコルのレベルで「フラッシュ」を要求している問題を処理することが、正しいことである可能性が非常に高いのです。