有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    虽然我没有测试您的代码,但原因在于readLine函数调用。 在找到ETX之前,readLine不会完成它的工作

    相反,尝试使用^{} or ^{}而不是readLine。这些函数有时会接收任意长度的字节(与发送方发送的字节相同或更短),然后您可能需要再次调用read来接收剩余的数据