gpt4 book ai didi

java - Netty中的缓冲区损坏

转载 作者:行者123 更新时间:2023-12-01 19:07:08 24 4
gpt4 key购买 nike

在使用netty(带有camel)时遇到一个奇怪的错误,我们使用LengthFieldBasedFrameDecoder进行通信,客户端是第三方的socket程序,我们在服务器端使用netty(camel-netty组件)。

有时会将两条消息“合并”为一条,因此即将到来的数据全部错误。

例如:

客户端发送两条消息:

[10]啊啊啊啊啊啊啊啊和[10]BBBBBBBBBBBBBBBB

其中 [10] 是长度字节,AAAAAAAAAA 是数据。

但是在服务器上我们得到了[10]AAAAAA[10]BBBBBBBBBBBBBBBBAAAAAAAAA

似乎第一条消息被第二条消息分割,因此解码器将数据解释为:

[10]AAAAAA[10]BBBBBBBB

BBBBBBBB啊啊啊啊啊啊…………………… ......

这样第一个消息长度正确,但数据错误,而第二个消息长度“BB”错误,得到一个更长的数据包。

希望我描述清楚,有人以前遇到过这个吗?

最佳答案

听起来您正在两个线程中写入同一个流。

关于java - Netty中的缓冲区损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com