第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用netty通信會把兩個間隔很短的數(shù)據(jù)幀合并成一個數(shù)據(jù)幀?

使用netty通信會把兩個間隔很短的數(shù)據(jù)幀合并成一個數(shù)據(jù)幀?

qq_遁去的一_1 2019-01-18 17:46:03
比如我用netty寫服務端, 用簡單的Socket來模擬客戶端,像這樣來向服務端發(fā)數(shù)據(jù): bos.write(data); bos.flush(); 這樣就存在一個問題, 當客戶端兩次發(fā)送數(shù)據(jù)的時間間隔很短時, netty的channelRead(ChannelHandlerContext ctx, Object msg)方法獲取到的msg里就可能會同時含有客戶端的兩次數(shù)據(jù), 這樣服務端在解析數(shù)據(jù)時就會出現(xiàn)問題. 想知道為什么會出現(xiàn)合并數(shù)據(jù)幀的問題, 以及該怎樣去解決?
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

channel本來就是非阻塞的,所以獲取到的并不是完全實時的數(shù)據(jù),可能會有延遲,所以兩次發(fā)送的數(shù)據(jù)服務端一次接收本身就是正常的。

關(guān)鍵的是,你不應該以“幀”來分隔數(shù)據(jù),而應該自己約定一種分割方法。比如每一個數(shù)據(jù)都附帶一個length,或者以若干個特殊的字節(jié)來作為分隔符,等。

查看完整回答
反對 回復 2019-03-01
?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

netty粘包拆包

查看完整回答
反對 回復 2019-03-01
  • 2 回答
  • 0 關(guān)注
  • 818 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號