inputStream 数据分段传输问题
起因:POS机通过串口发送数据过来,卡信息数据大小为205个字节。但是分成100+105 100+50+100等分段情况发过来
解决思路:接到第一份数据的时候等待0.5秒 , 之后完整的数据应该会全部发过来。
byte[] bytTemp = new byte[1024];
int nRetCount = 0;
if(mInputStream.available()>0 == false){
continue;
}else{
Thread.sleep(500);
}
nRetCount = mInputStream.read(bytTemp);
出现分段过来的时候:第一次mInputStream.available()可能为100
但是休眠0.5秒过后执行
nRetCount = mInputStream.read(bytTemp);
时,输入流应该已经完整了 。而且不像分成两段时候执行了两次缺失输入流
这里虽然数据是分两段发过来的,但是sleep后面的代码只会执行一次。
补充:移动开发 , Android ,