Linux:获取套接字的内核缓冲区大小

Linux:获取套接字的内核缓冲区大小

我有一个 C 应用程序,它通过 TCP 套接字接收大量数据。是否可以以某种方式获取该文件描述符/套接字的内核缓冲区大小?我想知道我拥有的文件描述符的内核中还有多少数据。

多谢

答案1

您可以使用SIOCINQ/FIONREAD ioctl:

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

这“返回接收缓冲区中排队的未读数据量。”SIOCINQ定义于linux/sockios.h(在 Linux 上),FIONREADsys/ioctl.h.

要检索套接字的缓冲区容量,请使用getsockoptSO_RCVBUF

相关内容