java - 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)
解决方案
推荐阅读
- rest - Draw.io 使用 API 从 CSV 导入图表
- python - 使用 python + matplotlib 在时间序列图中添加水平线
- centos - libvirt的串口xml中target元素中的port属性是什么意思?
- django - /.platform/hooks/':将 Django 应用程序部署到 AWS Elastic Beanstalk 时没有这样的文件或目录
- javascript - 如何使用循环新选项添加 setAttributes
- php - Yii2 - 通过检测数据更改动态插入/更新数据库值
- javascript - 使用 JavaScript 字母数字对 HTML 表格列进行排序
- javascript - 尝试在数组中查找值时出错
- r - R如何将一列拆分为多列
- javascript - 选择后如何自动显示价格