[英]How to read find length of packets in bytes
如何使用DataInputStream及其readUnsignedShort / readUnsignedByte方法查找數據包的長度。
數據包的標頭為7個字節,如下所示:
TT TT SS SS SS SS VV
其中:TT是類型SS是大小VV是版本
我需要找到數據包的大小,然后將其HexBinary打印到報頭中找到的給定字節。
我需要使用他的DataInputStream函數,但是如何使用。
謝謝!
如果這些是字節:
使用readUnsignedShort()
讀取類型字段
讀取3個字節的length字段和version字段以及readInt()
,並分別使用shift和mask將它們分開。
閱讀有關位移的文檔:
例如,假設您顯示的內容以字節表示:
int type = stream.readUnsignedShort();
int size = stream.readUnsignedShort();
size <<= 8;
size |= stream.readUnsignedByte();
int version = stream.readUnsignedByte();
或者:
int type = stream.readUnsignedShort();
int size = stream.readUnsignedByte();
size <<= 8;
size |= stream.readUnsignedByte();
size <<= 8;
size |= stream.readUnsignedByte();
int version = stream.readUnsignedByte();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.