如圖,TCP協議給我的報文檔案:

看檔案的意思stDeviceStatus是一個類似List物件陣列的資料。那么使用mina的IoBuffer如何決議這種資料呢?沒有頭緒,求路過大佬幫幫忙,先謝謝啦!
uj5u.com熱心網友回復:
首先 這個不是介面檔案 tcp介面不能這樣定義,歧義很多,比如int的長度,big endian or small endianmina多年不更新,主程去做netty了,換netty吧 。關于這個可以看看
https://blog.csdn.net/qq_33314107/article/details/81292589
uj5u.com熱心網友回復:
這個看樣子給的是api,直接呼叫方法,傳合適的引數,不需要你解包組包。你說到的東西用不到。如果給的協議報文格式說明,那你才需要關心你說到的東西。uj5u.com熱心網友回復:
這就是報文格式說明,其他的簡單報文物件我都決議了,但這個報文含復雜物件,我真的不知道咋決議
uj5u.com熱心網友回復:
這不是TCP介面協議,這是TCP介面協議報文格式說明,現在沒法用netty,專案原先就用這個
uj5u.com熱心網友回復:
不要按物件處理,因為C和java物件序列化的方法不一致,做兩個方法,一個是物件-》byte陣列,發送此陣列,一個是byte陣列-》物件,用于接收解碼uj5u.com熱心網友回復:
要不你就把檔案發全一些,按你上面提到的內容,無法確認報文格式,無法組包。uj5u.com熱心網友回復:
不清楚它是怎么序列化的,可能就是按順序填充位元組?比如前8個位元組為ucZNBoxID(設備ID),接下來4個位元組是設備個數,再接下來4*(1+1+32+1+4+4+4)是設備串列?
至于大小端以及C語言32位和64位某些基本型別比如long位元組長度不同的情況另說。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52230.html
標籤:Java相關
