2010-07-31 119 views
3

是否有任何簡單的功能來檢查有多少數據被緩衝但未讀? FD_ISSET僅指示緩衝區中數據的存在。有可能不在程序中創建第二個緩衝區來更好地控制緩衝區?Linux套接字緩衝數據大小

回答

6

你可以使用recv()MSG_PEEKMSG_DONTWAIT標誌,但沒有可靠保證,有沒有比在這種情況下返回recv()可用字節。

在程序中使用緩衝區是解決問題的常用方法。

+0

這有助於很多!儘管peek再次移動數據,但它讓我快速測試系統緩衝區的使用情況。我決定創建一個線程將數據從系統緩衝區移動到程序緩衝區。 – keithyip 2010-08-03 16:15:11

相關問題