Android Bluetooth Inputstream可同时读取多条消息

Android Bluetooth Inputstream可同时读取多条消息,android,android-bluetooth,Android,Android Bluetooth,建立蓝牙连接后,我已经调用write方法5次,以发送消息btAdapter.write(“abc18.getBytes());和我通过read()方法读取消息的方式相同,但问题是read方法有时会同时读取多条消息。我怎样才能防止这种情况?请参阅下面的客户端和服务器代码。服务器发送了5次相同的消息,客户端读取相同的消息,但问题有时是客户端同时读取多条消息 server side code: private final BluetoothSocket mmSocket; private fin

建立蓝牙连接后,我已经调用write方法5次,以发送消息btAdapter.write(“abc18.getBytes());和我通过read()方法读取消息的方式相同,但问题是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());
服务器端代码:
私人最终蓝牙插座mmSocket;
私有最终输入流mmInStream;
私有最终输出流mmOutStream;
mmOutStream.write(缓冲区);
字符串sendMsg=“测试”;

对于(inti=0;i,如果您继续像现在这样发送,您无法阻止这种情况


更好地发送线路。在接收端读取线路。

如果您像现在这样继续发送,您无法阻止这种情况。更好地发送线路。在接收端读取线路。蓝牙只有写入方法可用。当然,您可以使用写入方法发送线路。您只需在字符串中添加一个“\n”。我尝试了在后面添加“\n”但read()方法有时仍会读取多条消息。如果只更改发送端,那么当然这不会更改接收端的任何内容。请按照我在第一条评论中的建议执行。