我们要捕获端口为7777的系统数据。

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的设备,该设备带有 native Windows应用程序。 Windows native 应用程序正在接收来自该设备的数据。我们必须通过我们的java项目在端口7777上接收该数据。

在上面的代码中,
  • 创建了Java服务器套接字,但未从设备接收到传入的连接。
  • Java服务器套接字正在从telnet命令接收连接。
  • 设备和其他 native 应用程序使用的数据格式可能不同,但至少必须从Java服务器套接字连接。这是正确的吗?
  • 如何接收传输到端口7777的数据。

  • 编辑:

    好的,数据是通过UDP套接字接收的。它的长度是68。设备文档未指定捕获此数据的任何方法,因为它可能旨在与指定的应用程序一起使用。我们也无法与制造商联系。有什么办法(如果可能的话)知道传入字节的格式。我们已经尝试过网络嗅探器,但是我们无法理解其格式。

    最佳答案

    如果您是从telnet命令收到的,那么我怀疑您遇到了特定于网络的问题。

  • 您的设备与使用
  • 配置telnet的IP地址/主机名不同
  • 您有路由或防火墙问题
  • 您的设备是否可能使用UDP而不是TCP?
  • 10-01 20:50
    查看更多