首页 > 解决方案 > Java, Sockets, UTF-8, 我看不懂格式

问题描述

我正在使用 Java 进行数据采集项目的编程。我用 Python 完成了设备部分的接口,但是处理起来太繁重了。

我一直在将它转换为 Java(新手!)并且能够发送和接收设置数据,这些数据都是 ASCII。

一旦我要求数据开始流动,它就像一个打开的水龙头。

我可以理解前 4 个字符,但我不明白。

53 31 5C B5 61 99 AB 8B A9 85 91 89 55 85 (Hex)
S  1  This is the echo to say 'starting'
      5C B5 61 99 AB 8B A9 85 91 89 55 85 (Hex)

这是我需要的数据以及它是如何发送的。我可以在网络监视器上嗅探它。

83 49 92 65533 97 65533 65533 65533 65533 (dec)

我尝试了各种方法,但目前:

Socket socket=new Socket(ipAddress , portNumber);       //Create Socket
inputStream=socket.getInputStream();
inputStreamReader=new InputStreamReader(inputStream); // Tried (inputStream,"UTF-8")

stringBuffer=new StringBuffer();

public static StringBuffer  recMsg(InputStreamReader inputStreamReader, StringBuffer stringBuffer) throws IOException {
    int x;
    stringBuffer.setLength(0);
    while(true)
    {
        x=inputStreamReader.read();
        stringBuffer.append((char)x);
        //System.out.println("Ready to read:2 "+ inputStreamReader.ready());
        if (stringBuffer.length() >= 500) break;
        if (!inputStreamReader.ready()) break;    //
    }
    System.out.println("Response "+ stringBuffer);
    System.out.println(" --- ");
    return stringBuffer;
}

我刚刚使用的 Python 中的 PS

s.connect((host, port))
s.recv(2048)

标签: javasocketsinputstreaminputstreamreader

解决方案


推荐阅读