我们希望捕获端口上的系统数据,例如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,该端口附带本机Windows应用程序。 Windows本机应用程序正在接收来自该设备的数据。我们必须通过java项目在端口7777上接收数据。
在上面的代码中,
已创建java服务器套接字,但未从设备接收传入连接。
java服务器套接字正在接收来自telnet命令的连接。
设备和其他本机应用程序使用的数据格式可能不同,但至少必须从java服务器套接字连接。这是对的吗?
如何接收传输到端口7777的数据。
编辑:
好的,使用UDP套接字接收数据。它的长度是68。设备文档未指定捕获此数据的任何方法,因为它可能旨在与指定的应用程序一起使用。我们也无法联系制造商。有没有办法(如果可能的话)知道传入字节的格式。我们尝试过网络嗅探器,但我们无法理解格式。
答案 0 :(得分:5)
如果您从telnet命令接收,我怀疑您有特定于网络的问题。
答案 1 :(得分:3)
已创建java服务器套接字,但未从设备接收传入连接。
因此,无论是在路上还是防火墙,或者设备都没有尝试连接到该端口。
java服务器套接字正在接收来自telnet命令的连接。
因此Java应用程序正在侦听该端口。
设备和其他本机应用程序使用的数据格式可能不同,但至少必须从java服务器套接字连接。这是对的吗?
是
如何接收传输到端口7777的数据。
首先,您必须接受连接。根据此处的证据,设备根本没有连接到端口7777。我建议一些网络嗅探是为了看看它到底在做什么。