0
在winsock中,无论指定的大小(只是上限),只要流套接字中有可用数据,就立即同步完成同步recv
和异步WSARecv
。这意味着为了从流中读取固定数量的字节,应该应用一些自定义缓冲。除非每次读取都被单独缓冲,否则会导致双重缓冲,即每个套接字实际上有两个缓冲区。如何从流(tcp)套接字读取确切的字节数?
有什么办法可以让winsock以自己的名义缓存数据,只有在指定的字节数可用时才会完成操作(除非发生错误)?
编辑:此功能应该特别适用于异步套接字。
它似乎是阻止套接字的解决方案,但根据MSDN它不支持异步套接字。请参阅编辑。 – sold 2009-11-15 22:40:40
我相应地更新了我的答案。 – Gerald 2009-11-15 23:02:16