Мы хотим, чтобы захватить данные, которые приходят к системе на порт 7777. сказатьJava прослушивает порт
public static void main(String[] args) {
try {
final ServerSocket serverSocket = new ServerSocket(7777);
new Thread("Device Listener") {
public void run() {
try {
System.out.println("Listener Running . . .");
Socket socket = null;
while ((socket = serverSocket.accept()) != null) {
System.out.println("| Incoming : "+ socket.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
У нас есть устройство, которое передает данные в порт 7777, который поставляется с родным окном приложением. Собственное приложение Windows получает данные, поступающие с этого устройства. Мы должны получить эти данные на порту 7777 через наш проект java.
В приведенном выше коде,
сокет сервера Java создается, но не входящие соединения не поступает из устройства.
Сокет java-сервера принимает соединения из команды telnet.
Формат данных, который используется устройством и другим родным приложением, может быть другим, но по крайней мере он должен быть подключен из сокета Java-сервера. это правильно?
, как получить данные, которые передается в порт 7777.
РЕДАКТИРОВАТЬ:
Хорошо, данные, полученные с UDP-сокета. он имеет длину 68. В документации устройства не указаны какие-либо методы для захвата этих данных, поскольку, возможно, он предназначен для работы с указанным приложением. Мы также не можем связаться с производителем. есть ли какой-либо способ (если возможно) знать формат входящих байтов. мы попробовали сетевые снифферы, но мы не можем понять формат.
Спасибо, это UDP-порт – user2463026
@ user2463026 Итак, если это порт UDP, почему вы пытаетесь использовать TCP-сервер? – EJP
Нет, позже я изменил свой код с помощью сокета 'DatagramSocket'. – user2463026