java获取Inputstream中STX和ETX之间的字符串/字节
我正在使用TCPsocket,但我意识到它只会打印以“\n”结尾的消息。 问题是服务器将发送以ETX结尾的消息(不带“\n”),因此我无法打印字符串。 有没有办法在STX和ETX之间获取数据
this.input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
rxMsg = input.readLine();
Log.v("InputStream",rxMsg);
# 1 楼答案
虽然我没有测试您的代码,但原因在于
readLine
函数调用。 在找到ETX之前,readLine不会完成它的工作相反,尝试使用^{} or ^{} 而不是
readLine
。这些函数有时会接收任意长度的字节(与发送方发送的字节相同或更短),然后您可能需要再次调用read
来接收剩余的数据