【发布时间】:2020-07-25 17:39:33
【问题描述】:
我正在尝试使用 Java Socket Programming ServerSocket 从系统的 TCP IP 端口读取连续数据,但我得到了不可读的字符串数据,如下图所示:
我正在使用以下代码从 TCP IP 端口读取数据:
ServerSocket server_socket;
BufferedReader input;
try {
server_socket = new ServerSocket(6666);
LOGGER.info("Server waiting for client on port "
+ server_socket.getLocalPort());
System.out.println("Server waiting for client on port "
+ server_socket.getLocalPort());
while (true) {
Socket socket = server_socket.accept();
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
try {
while (true) {
String message = input.readLine();
if (message == null) {
break;
}
}
} catch (Exception e) {
socket.close();
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
所以请让我知道上图中的数据是什么类型的,我应该做什么转换?
提前致谢。
【问题讨论】:
-
套接字的另一端是什么应用程序?它使用的协议是否已知?您能否包含接收到的数据的十六进制表示来代替或补充文本?
-
对不起,我不知道其他终端协议,但它是硬件 RFID 读取器设备,在配置的服务器上发送数据
-
在这种情况下,除非您可以提供任何其他详细信息,否则这很可能会变成逆向工程问题。为此,请包含接收数据的十六进制表示,因为熟悉协议的人很可能会发现该表示中的任何幻数或模式
-
和@nanofarad 你能告诉我它是什么样的数据格式吗?编码形式是什么?
-
您是否有任何文件,包括设备的制造商或型号/序列号?
标签: java serversocket