Java监听端口

标签 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();
        }
    }

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

在上面的代码中,

  1. Java 服务器套接字已创建,但未从设备接收到传入连接。

  2. java 服务器套接字正在接收来自 telnet 命令的连接。

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

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

编辑:

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

最佳答案

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

  1. 您的设备与您配置 telnet 时使用的 IP 地址/主机名不同
  2. 您有路由或防火墙问题
  3. 您的设备可能使用的是 UDP 而不是 TCP 吗?

关于Java监听端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17943915/

相关文章:

java - 使用 Spring HibernateDaoSupport 进行延迟加载?

java - BeanFactory 未初始化或已关闭

java - 类属性声明,属性属性的顺序(最终、私有(private)、静态、类型)

python - 如何在Python中为socket .send()添加最大时间?

c++ - 客户端到客户端套接字通信

java - 如何获取我在 jfilechooser 中选择的文件的路径?

c++ - 发送较少字节数的 TCP 套接字

java - 将 Android Studio 项目从 Windows 移动到 Mac 后出现 ClassNotFoundException (AppCompatActivity.class)

java - 在java中选择查询(JPA)

javascript - 了解 socket.io ping 间隔/超时设置