似乎我不知道为什么我要拆分第一个数据包,而其余的数据包却是一个。
首先接收到的是IMEI(17字节),网络服务器发送回01响应并开始发送数据包,然后我用另一个响应对其进行响应。
但是为什么我要分两个部分继续获取第一个数据包?当其他人作为一个发送时(可以)。它始终最多接收1024个字节,然后再接收251个字节。整个包最大为1275字节。
答案 0 :(得分:1)
通常来说,使用TCP时无法保证是否拆分了数据包。因此,您不能对此做出任何假设。
这就是说,您看到的可能是使用AdaptiveRecvByteBufAllocator
(默认设置)的结果,因为它以较小的分配大小开始,然后根据需要增加这些大小。
如果要更改行为,可以使用其他RecvByteBufAllocator
。但这又不是您可以依赖的。