2010-07-31 73 views
3

是否有任何简单的功能来检查有多少数据被缓冲但未读? FD_ISSET仅指示缓冲区中数据的存在。有可能不在程序中创建第二个缓冲区来更好地控制缓冲区?Linux套接字缓冲数据大小

回答

6

你可以使用recv()MSG_PEEKMSG_DONTWAIT标志,但没有可靠保证,有没有比在这种情况下返回recv()可用字节。

在程序中使用缓冲区是解决问题的常用方法。

+0

这有助于很多!尽管peek再次移动数据,但它让我快速测试系统缓冲区的使用情况。我决定创建一个线程将数据从系统缓冲区移动到程序缓冲区。 – keithyip 2010-08-03 16:15:11

相关问题