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

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

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

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