亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 netty 服務器讀取時,不同的響應消息正在合并

從 netty 服務器讀取時,不同的響應消息正在合并

慕桂英3389331 2022-10-07 19:28:53
我有一個 netty 客戶端應用程序。此應用程序正在連接到端口并檢索 tcp 響應。當我在負載下閱讀響應時,一些響應消息正在連接。我的請求和響應消息具有唯一的事務密鑰。我正在關注我的業務邏輯;實際:000010690013200000101PMAX 567F 0000000000 1554092081842400 0 000010690013200000101PMAX 567F 0000000000 1556083801080400 0預期:000010690013200000102PMAX 567F 0000000000 1554092081842400 0重復響應有 2 個響應,但服務器僅發送 1 個響應,我們在閱讀時匯總了它@Overridepublic void channelRead0(ChannelHandlerContext channelHandlerContext, ByteBuf in) {    String input = in.toString(CharsetUtil.UTF_8);    log.info(input);}我該如何解決這個問題,它是在負載下發生的。Netty 版本:4.1.25.Final Java 版本:OpenJDK 64-Bit Server VM(build 25.161-b14,混合模式)謝謝。
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

這是意料之中的,也是 TCP 的工作原理。TCP 沒有消息邊界的概念,因此您可能會在讀取字節時收到它們(這意味著內容可能會被分段等)。

如果您需要保留某種消息邊界,則需要在協議中對此信息進行編碼。例如,您可以預先添加消息的長度,然后在接收對等方上使用此信息來正確解碼消息。

Netty 本身包含一些解碼器/編碼器

LengthFieldPrepender

LengthFieldBasedFrameDecoder


查看完整回答
反對 回復 2022-10-07
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號