串口堵塞问题,通讯采用com.sun.comm...,一台机大量发送数据,另一台机接收到一定时候,就回复出错?
我用串口API写了一个通讯程序,用于测试java串口的性能,其中A机只管发,同时也会接收B机的回复;B机只管收,收到一条消息后,打印出来,并给A机回复一个“ack”。现在问题是A机发送没问题,就算B机程序没运行也没关系,B机运行大约3分钟后,就出现outputstream.write()出错,然后Listenevent就不会再接收到消息了!
为了更快的接收A机传来的数据,B程序采用两线程,一个线程起监听事件addEventListener,专门接收消息,并且送入一个堆栈。第二个线程查询堆栈,有消息,就pop出来,再给A机传一个“ack”。
一开始运行挺稳定的,但运行几分钟B程序就停止运行了。为了测试强度,我将A程序每隔100毫秒就送一条消息过来。
如果我采用B反馈一条,A再发送一条,两个程序将会运行非常稳定的。现在关键问题就是,我如何解决B outputstream.write()出错后,能够再次接收到消息,并且执行一定的处理。