2017-01-17 45 views
0

建立藍牙連接後我有5次調用寫入方法發送消息btAdapter.write(「abc18」.getBytes());同樣,我正在通過read()方法讀取消息,但問題是讀取方法有時一起讀取多個消息。我怎樣才能防止這一點?看到我的下面的客戶端和服務器代碼。服務器發送相同的消息5次和客戶端閱讀相同,但問題是有時客戶端讀取多個郵件在一起。藍牙輸入流一起讀取多個消息

server side code: 

private final BluetoothSocket mmSocket; 
private final InputStream mmInStream; 
private final OutputStream mmOutStream; 
mmOutStream.write(buffer); 
String sendMsg = "testing"; 
for(int i=0;i<5;i++){//Sending same message 5 times. 
mmOutStream.write(sendMsg.getBytes()); 
} 

Client side: 

private final InputStream mmInStream; 
mmBuffer = new byte[1024]; 
numBytes = mmInStream.read(mmBuffer); 
byte[] readBuf = mmBuffer; 
String readMessage = new String(readBuf, 0, numBytes); 
Log.d(TAG,"READING MESSAGES MESSAGES::"+readMessage.toString()); 
+0

如果您繼續像現在一樣發送郵件,則無法阻止該郵件。更好地發送線路。並閱讀接收方的線路。 – greenapps

+0

只有寫入方法可用於藍牙。 –

+1

當然,您可以使用寫入方法發送行。你唯一需要添加的是你的字符串的'\ n'。 – greenapps

回答

0

如果您繼續像現在一樣發送,則無法防止此問題。

更好的發送線路。並閱讀接收方的線路。