(高分请教)如何解析报文?

(高分请教)如何解析报文?,第1张

如果你不知道报文数据大小的话,最好设置一个报文数据开始与结束标志,然后在接收端固定大小,比如512字节分段接收报文,每次接收判断接收的最后一位是否为结束标志,如果不是,则继续接收。接收buf的初始大小可以随便给一个,当数据溢出时,则再申请新的内存,然后拷贝数据就行了。

数据的循环接收一般可以放在一个单独的线程里面,可以在线程里面持续接收报文,然后发到报文解析端就可以了。程序结束时,只要终止线程就可以停止接收报文了。

ByteBuffer bb = ByteBuffer.wrap(data, offset, length)

if (bb.remaining() <MIN_HEADER_LENGTH) {

return this

}

this.opCode = bb.get()

this.transactionId = bb.getInt()

按照这种节奏搞吧,这个很简单的啊,拿到BYTEBUFFER以后,一点一点的处理byte。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8015326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存