Netty无法接收整个数据包

时间:2018-11-26 11:18:12

标签: java tcp server byte netty

似乎我不知道为什么我要拆分第一个数据包,而其余的数据包却是一个。

首先接收到的是IMEI(17字节),网络服务器发送回01响应并开始发送数据包,然后我用另一个响应对其进行响应。

但是为什么我要分两个部分继续获取第一个数据包?当其他人作为一个发送时(可以)。它始终最多接收1024个字节,然后再接收251个字节。整个包最大为1275字节。

1 个答案:

答案 0 :(得分:1)

通常来说,使用TCP时无法保证是否拆分了数据包。因此,您不能对此做出任何假设。

这就是说,您看到的可能是使用AdaptiveRecvByteBufAllocator(默认设置)的结果,因为它以较小的分配大小开始,然后根据需要增加这些大小。

如果要更改行为,可以使用其他RecvByteBufAllocator。但这又不是您可以依赖的。