0
在winsock中,無論指定的大小(只是上限),只要流套接字中有可用數據,就立即同步完成同步recv
和異步WSARecv
。這意味着爲了從流中讀取固定數量的字節,應該應用一些自定義緩衝。除非每次讀取都被單獨緩衝,否則會導致雙重緩衝,即每個套接字實際上有兩個緩衝區。如何從流(tcp)套接字讀取確切的字節數?
有什麼辦法可以讓winsock以自己的名義緩存數據,只有在指定的字節數可用時纔會完成操作(除非發生錯誤)?
編輯:此功能應該特別適用於異步套接字。
它似乎是阻止套接字的解決方案,但根據MSDN它不支持異步套接字。請參閱編輯。 – sold 2009-11-15 22:40:40
我相應地更新了我的答案。 – Gerald 2009-11-15 23:02:16