java 发送数据,另一端,有时会正常接收到 有时只会接收前8个字符,,经常数据接收不完整,请问这是怎么回事啊
解决方案 »
- 如何给jframe中的components也加上和jframe一样的事件监听
- java.net.SocketException: Connection reset
- 如何拿到数据库自动生成的主键值呢?
- 一个简单的QQ聊天程序,基于服务器很客户端的,但是我写好以后调试了两天都没调试出来。。。不知道错在哪里(希望大家帮帮忙,我没多少分数能给了,只剩20分)
- 如何实现点一下按钮,退出java applet程序界面
- 是不是所有的接口都是public 方法,那么它的实现类也全是public 方法,那么不是任何方法都可以直接调用哪个实现类啊,,,为什么要用接口
- 请教一个正则表达式得问题--如何匹配一个重复单个数字多次的字符串
- 关于Java程序本机化
- 中文输入!!!
- 关于Java正则表达式的非贪婪模式
- ECLIPSE单步调试时,如何设置让他不跑进java自己的方法里面。
- Eclipse中启动weblogic报错
发送数据 public void WritePortData(byte [] aa){
try{
outputStream = serialPort.getOutputStream();
outputStream.write(aa);
outputStream.flush(); }catch(Exception ee){
return ;
}
}
串口连接:public void connectPort() {
if (this.serialPort != null) {
this.serialPort.close();
}
try {
portId = CommPortIdentifier.getPortIdentifier(this.portName);
serialPort = (SerialPort) portId.open("ReadComm", 2000);
this.p3f2.setText(this.portName + " Success\n"); } catch (Exception ee) { JOptionPane.showMessageDialog(this, ee.toString(), "Message",
JOptionPane.INFORMATION_MESSAGE);
this.p3f2.setText(this.portName + " failure\n");
}
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (Exception ee) { JOptionPane.showMessageDialog(this,
"Please connect serial port first!", "Message",
JOptionPane.INFORMATION_MESSAGE);
}
try { this.inputStream = serialPort.getInputStream();
this.serialPort.addEventListener(this); } catch (Exception ee) {}
serialPort.notifyOnDataAvailable(true);
}
接收数据代码:
public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[21];
try{
while(inputStream.available()>0){
int numBytes=inputStream.read(readBuffer);
}
String comStr = new String(readBuffer).trim();
}
} catch (Exception e) { }
break;
}
}