BBS水木清华站∶精华区

发信人: KHP (人之初), 信区: Java        
标  题: Re: 一个关于通信接收的问题 
发信站: BBS 水木清华站 (Thu May 13 21:21:23 1999) 
 
 
呵呵,我没有做过这样的处理,你可以试试把输入缓冲区设大一点: 
 
sPort.setInputBufferSize(MAX_SIZE); 
 
然后在DATA_AVAILABLE事件处理时,尽可能地多读取数据: 
 
while (is.available() > 0) {  // is -- input stream 
  ... 

 
在发送方,你是怎么发的?这也影响你的接收。 
 
因为串口的数据传输采用异步方式逐字节发送,没有数据帧的概念,所以 
底层的传输模式不能保证数据的传输间隔。要想实现较高级的控制,建议你 
在底层简单传输的基础上实现一定的协议。 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
 在用通信包进行通信接收事件处理时有一个问题,本人怎么想法也不行,特地请教; 
 在事件触发SerialPortEvent.DATA_AVAILABLE:时怎样控制一次性触发事件发生时就全 
 部接收对方写过来的数据,举例说明,对方写过来一个很长的字符串,我发现总是要好几次触发事件发生才能全部接收 
 怎的让它一次就全盘接收,是不是有什么函数可以设置?请高手指教,尤其是KHP先生 
 非常感谢 
 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.163.77] 

BBS水木清华站∶精华区