Linux:ソケットのカーネルバッファサイズを取得する

Linux:ソケットのカーネルバッファサイズを取得する

TCPソケットを介して大量のデータを受信するCアプリケーションがあります。このファイル記述子/ソケットのカーネルバッファサイズを何とか取得できますか?私が持っているファイル記述子について、カーネルにどれだけのデータが残っているかを知りたいです。

ありがとう

ベストアンサー1

あなたはそれを使用することができますこれSIOCINQ/FIONREAD ioctl:

int bytes_left;
ioctl(sock, FIONREAD, &bytes_left);

これは、「受信バッファで待機している未読データの量を返します。」 (SIOCINQLinuxではlinux/sockios.h)。FIONREADsys/ioctl.h

ソケットのバッファ容量を取得するには、次を使用します。getsockoptそしてSO_RCVBUF

おすすめ記事