我知道TCP提供类似流的数据传输,但主要问题是 - 在通过TCP发送数据时可能会发生什么情况?
1. 消息可以分成N个块以适应MTU大小。
2. 两条消息可以在1个recv调用中读取。
可能出现下一个情况吗?
例如MTU为1500字节。
客户端使用1498字节数据调用send。
客户端使用100字节数据调用send。
服务器调用recv并接收1500字节数据。
服务器调用recv并接收98字节数据。
因此,最终会出现这样一种情况,即第二个客户端发送的2个字节将在第一个服务器recv中接收到。
我的协议定义如下:
4个字节 - 数据长度
数据内容。
我想知道是否可能出现4个字节(数据长度)被拆分为2个块的情况?