2012-03-20 7 views
0

linuxのソケットの送信バッファにいくつのバイトがあるか照会することはできますか?バッファサイズを取得するためにgetsockoptを使用してSO_SNDBUFを照会できるようにしたいと思います。実際の使用量を取得するには、[ここに技法を挿入する]を使用して、バッファをどれだけ埋めるかを教えてください。linuxのソケットでクエリを送信するバッファの使用

答えて

1

これは、SO_SNDBUFの機能ではありません。 SO_SNDBUFは、最大ソケット送信バッファーをバイト数(引用符はsocket(7))に設定または取得します。 tcpまたはudpを使用している場合は、おそらくSIOCOUTQまたはTIOCOUTQ ioctlsを使用できます。

しかし、これは適切なアプローチではありません。ソケットが書き込み可能であることを通知するために、選択のような仕組みを使用することを検討しましたか?ノンブロッキングな振る舞いと組み合わされることで、クリーンなアプローチへの切符になる可能性があります。

+0

申し訳ありませんが、ソケットを作成するときにSO_SNDBUFを使用してバッファ全体のサイズを取得し、その時点でどれだけ実際に使用しているかを監視したいと思います。これはアプリケーションのメッセージキュータイプのためであり、私は待ち行列が遅い読者のためゆっくりと満ちていないことを確認するために物事を監視したい。私はSIOCOUTQが私の必要としているものだと思います。 –

関連する問題