gpt4 book ai didi

java - 监控来自特定端口的所有传出/传入数据包

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:17 25 4
gpt4 key购买 nike

我正在尝试使用 Java 监视端口以从我的 PC 获取传出/传入数据包(或套接字),更像是 Wireshark确实如此。

我正在使用此代码:

int portNumber = 5816;

try {
System.out.println("New ServerSocket...");
ServerSocket serverSocket = new ServerSocket(portNumber);
serverSocket.setSoTimeout(5000);

System.out.println("Accepting...");
serverSocket.accept();

System.out.println("Done Accepting.");
} catch (IOException e) {
System.out.println(e.getMessage());
}

现在我可以使用 Wireshark 查看数据包,并且可以看到连接是使用 Process Hacker 2 建立的,但我总是得到这个输出:

New ServerSocket... Accepting... Accept timed out

编辑:问题是,我安装了一个应用程序,它与外部服务器交换数据包(客户端或服务器都不是我的),我只想拦截这些数据包并记录它们。他们正在使用 5816 端口。

最佳答案

Wireshark 正在使用 pcap library拦截网络通信。您可以使用pcap wrapper for java实现类似的功能。

注意:
您没有关闭套接字。但是,此代码仍然不是实现您的目标的错误方法。

    int portNumber = 5816;

System.out.println("New ServerSocket...");
try (ServerSocket serverSocket = new ServerSocket(portNumber)) {
serverSocket.setSoTimeout(5000);

System.out.println("Accepting...");

try(Socket socket = serverSocket.accept()) {
System.out.println("Done Accepting.");
}

} catch (IOException e) {
System.out.println(e.getMessage());

}

关于java - 监控来自特定端口的所有传出/传入数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com