Java在端口上侦听

use*_*026 3 java sockets

我们希望捕获端口上的系统数据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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我们有一个设备将数据发送到端口7777,它带有一个本机Windows应用程序.Windows本机应用程序正在接收来自该设备的数据.我们必须通过java项目在端口7777上接收数据.

在上面的代码中,

  1. 创建了Java服务器套接字,但没有从设备接收传入连接.

  2. java服务器套接字正在从telnet命令接收连接.

  3. 设备和其他本机应用程序使用的数据格式可能不同,但至少必须从java服务器套接字连接.这是对的吗?

  4. 如何接收传输到端口7777的数据.

编辑:

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

Bri*_*new 5

如果您从telnet命令接收,那么我怀疑您有特定于网络的问题.

  1. 您的设备没有与您正在配置telnet的相同IP地址/主机名进行通信
  2. 你有路由或防火墙问题
  3. 您的设备是否可能使用UDP而不是TCP?