Netty 无法接收整个数据包
Netty Unable to receive whole packet
我似乎想不通,为什么我的第一个数据包被拆分,而我收到的其余数据包是一个。
首先收到的是 IMEI(17 字节),netty 服务器发回 01 响应并开始发送数据包,我用另一个响应响应它们。
但为什么我总是分两部分收到第一个数据包?而其他人则作为一个发送(没关系)。它总是接收最多 1024 个字节,然后接收其余的 251 个字节。整个包最多1275字节..
一般来说,使用 TCP 时并不能保证数据包是否被拆分。所以你不能对此做任何假设。
也就是说,您看到的可能是使用 AdaptiveRecvByteBufAllocator
(默认设置)的结果,因为它从较小的分配大小开始,然后根据需要增加这些大小。
如果您想改变行为,您可以使用不同的 RecvByteBufAllocator
。但这同样不是你可以依赖的。
我似乎想不通,为什么我的第一个数据包被拆分,而我收到的其余数据包是一个。
首先收到的是 IMEI(17 字节),netty 服务器发回 01 响应并开始发送数据包,我用另一个响应响应它们。
但为什么我总是分两部分收到第一个数据包?而其他人则作为一个发送(没关系)。它总是接收最多 1024 个字节,然后接收其余的 251 个字节。整个包最多1275字节..
一般来说,使用 TCP 时并不能保证数据包是否被拆分。所以你不能对此做任何假设。
也就是说,您看到的可能是使用 AdaptiveRecvByteBufAllocator
(默认设置)的结果,因为它从较小的分配大小开始,然后根据需要增加这些大小。
如果您想改变行为,您可以使用不同的 RecvByteBufAllocator
。但这同样不是你可以依赖的。