如何解决在 Inputstream 中获取 STX 和 ETX 之间的字符串/字节
我正在处理 TCP 套接字,但我意识到它只会打印以“\n”结尾的消息。 问题是服务器将发送以 ETX 结尾的消息(没有“\n”),因此我无法打印字符串。 有没有办法在STX和ETX之间获取数据?
this.input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
rxMsg = input.readLine();
Log.v("InputStream",rxMsg);
解决方法
虽然我没有测试过您的代码,但原因在于您的 readLine
函数调用。
readLine 在找到 ETX 之前不会完成它的工作。
相反,请尝试使用 read()
or read(char[] cbuf,int off,int len)
而不是 readLine
。这些函数有时会接收任意长度的字节(与发送方发送的字节相同或更短),然后您可能需要再次调用 read
以接收剩余数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。