Java 如何在不干扰的情况下监听端口上的流量
Java how to listen for traffic on port without interfering
在Java中,我如何在不干扰的情况下监听端口上是否有任何流量?
我有一个 java 应用程序,它通过 UDP 与某些硬件进行通信。但是,存在一种旧产品可以使用 23982 上的端口转发与硬件进行远程通信。
两个系统无法同时与硬件通信,所以我需要在端口 23982 上监听。如果端口上有任何流量(即遗留软件是主动连接到硬件)我需要给遗留系统优先权。
因此我需要监听但不干扰从端口 23982 转发的流量
我想你想使用 ServerSocket
。
int port = 23982;
java.net.ServerSocket serverSocket = new java.net.ServerSocket(port);
java.net.Socket client = serverSocket.accept();
// blocks until there is a connection-request. So you can
// now handle your notification, because if the program reaches this part of code,
// a client has connected, e.g.:
boolean connected = true;
只要打开端口就会干扰流量,行为会从 "unable to connect" 立即变为 "server not responding" 超时后。
在Java中,我如何在不干扰的情况下监听端口上是否有任何流量?
我有一个 java 应用程序,它通过 UDP 与某些硬件进行通信。但是,存在一种旧产品可以使用 23982 上的端口转发与硬件进行远程通信。
两个系统无法同时与硬件通信,所以我需要在端口 23982 上监听。如果端口上有任何流量(即遗留软件是主动连接到硬件)我需要给遗留系统优先权。
因此我需要监听但不干扰从端口 23982 转发的流量
我想你想使用 ServerSocket
。
int port = 23982;
java.net.ServerSocket serverSocket = new java.net.ServerSocket(port);
java.net.Socket client = serverSocket.accept();
// blocks until there is a connection-request. So you can
// now handle your notification, because if the program reaches this part of code,
// a client has connected, e.g.:
boolean connected = true;
只要打开端口就会干扰流量,行为会从 "unable to connect" 立即变为 "server not responding" 超时后。