蓝牙串口返回数据过长分包的问题


用处:不管是蓝牙通讯还是串口通讯,都会出现返回数据过长而导致分包的问题

 

解决思路:接到第一份数据的时候等待0.5秒  , 之后完整的数据应该会全部发过来。

 

byte[] bytTemp = new byte[1024]; 
int nRetCount = 0;  
     if( mInputStream.available()>0 == false ){ //available()方法 检查数据文件大小 返回值为int
      continue;
     }else{
      Thread.sleep(500); //休眠时间可以根据接收数据长短修改
     }  
nRetCount = mInputStream.read(bytTemp);

 

出现分段过来的时候:第一次 mInputStream.available() 可能数据不完整

但是休眠0.5秒过后执行  nRetCount = mInputStream.read(bytTemp);

时,输入流应该已经完整了 。而且不像分成两段时候执行了两次缺失输入流

 

这里虽然数据是分两段发过来的,但是sleep后面的代码只会执行一次。


转载说明出处:http://blog.csdn.net/qq_32198277/article/details/50965975?locationNum=3&fps=1


你可能感兴趣的:(数据分包问题)