在处理通过winsocket进行通信的Windows应用程序时,我已经扼杀了以下场景:
调试时,我发现Bob的send()永远不会阻塞,即使我在第一次读取之前暂停了Alice。
问题是,什么保证整个数据( ~1000 mb )将保持可供Alice阅读? 是否有已知/可配置的参数限制此缓冲区的长度?
答案 0 :(得分:1)
Alice有一个套接字接收缓冲区,Bob有一个套接字发送缓冲区。两者都存在于各个插座的寿命中。当Alice的TCP确认时,数据从Bob的缓冲区中删除,而当Alice读取它时,从Alice的缓冲区中删除数据。