我似乎不明白,为什么我的第一个数据包会被分割,而我收到的其余数据包会被分割为一个。
第一个收到的东西是 IMEI(17 字节),netty 服务器发回 01 响应并开始发送数据包,我用另一个响应来响应它们。
但是为什么我总是分成两部分收到第一个数据包?而其他的则作为一个整体发送(这是可以的)。它始终最多接收 1024 个字节,然后接收其余的 251 个字节。整个包最大1275字节..
请您参考如下方法:
一般来说,使用 TCP 时不能保证数据包是否被拆分。所以你不能对此做出任何假设。
这就是说,您所看到的可能是使用 AdaptiveRecvByteBufAllocator
(默认设置)的结果,因为它从较小的分配大小开始,然后根据需要增加这些分配大小。
如果您想更改行为,可以使用不同的RecvByteBufAllocator
。但这又不是你可以依赖的。