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後面的代碼隻會執行一次。

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *