TCPソケットを介して大量のデータを受信するCアプリケーションがあります。このファイル記述子/ソケットのカーネルバッファサイズを何とか取得できますか?私が持っているファイル記述子について、カーネルにどれだけのデータが残っているかを知りたいです。
ありがとう
ベストアンサー1
あなたはそれを使用することができますこれSIOCINQ
/FIONREAD
ioctl
:
int bytes_left;
ioctl(sock, FIONREAD, &bytes_left);
これは、「受信バッファで待機している未読データの量を返します。」 (SIOCINQ
Linuxではlinux/sockios.h
)。FIONREAD
sys/ioctl.h
ソケットのバッファ容量を取得するには、次を使用します。getsockopt
そしてSO_RCVBUF
。