我有一个客户端和一个服务器通过标准TCP连接相互通信。
服务器配置为以一致大小的x字节块发送数据。客户端还配置为以x字节的块接收数据(即,客户端期望对TCP堆栈的接收x字节的调用将成功,除非与远程端的连接失败)。
基于TCP的协议是否可以基于上述假设?
答案 0 :(得分:3)
没有。 TCP是基于流的协议。除非您自己在应用程序级别处理分块,否则无法保证“块”。作为协议的TCP不会为您提供此保证。
答案 1 :(得分:3)
Deja vu Will TCPStream read block until all data is received.
我意识到它看起来有点不同,但核心是非常相似的问题。
不要对数据包大小做出假设。