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

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

2个回答

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

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

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

dxt_1515
dxt_1515 好的,我试一下,谢谢
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐