2 dxt 1515 dxt_1515 于 2016.05.09 17:36 提问

java解析UDP报文,报文的处理

我会从单片机收到S5W1449!p1r!p1r003B1s!S6WGGG00!p2r!p2r00003!这样的数据,我要把每位提取出来。共有九位数据,第八位是校验位,!是结束位。我不太懂java是怎么进行处理的,因为一直收数据,我处理好之后要显示在界面上,要一直更新,我是收到一帧数据处理完之后,在接收,还是具体怎么接收的,要把之后的数据一直缓存吗?我要怎么写呢?

3个回答

CSDNXIAOD
CSDNXIAOD   2016.05.09 17:42

8583报文 55域JAVA的解析
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

dxt_1515
dxt_1515 你的报文,我看的不是太懂。。。
一年多之前 回复
sxwws
sxwws   2016.05.10 09:13

这类的程序,应该实现成,接收和处理线程分开。接收线程不断读取监听的socket,read出来的数据缓存在内存区中,内存区开稍大点,处理线程从这块区域
中把数据拿出来进行处理。
千万别做成一帧帧读。这是一个持续的过程,所以你需要转变编程思路。

dxt_1515
dxt_1515 就是先把数据全部拿进来,缓存,然后一帧一帧处理吗
一年多之前 回复
sxwws
sxwws   2016.05.10 11:22

你能够很明确的知道每一帧之间的分割,当然最好。但很多情况下这种分隔并不明显,处理起来就有些困难。所以就需要依靠协议间去保证,比如你读头,知道这个包的size,然后取出数据,不断往后。

dxt_1515
dxt_1515 好的,我试一下,谢谢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!