【发布时间】:2017-08-24 01:57:02
【问题描述】:
我的任务是实现一个应用程序,该应用程序将接受来自某个端口的所有信息。它应该像 Wireshark 一样工作。
此代码应侦听来自端口 46122 的所有内容。 在 Wireshark 中,我看到一些信息来自这个端口。但是我的程序什么也没看到。
ServerSocket serverSocket = new ServerSocket(46122);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
【问题讨论】:
-
这只会记录通过 TCP 连接发送的数据。它不会记录 TCP/IP 标头或使用不同协议发送的任何内容。这是你的意图吗?
-
@Am_I_Helpful 这就是问题所在。在没有客户端连接到此服务器之前,我不会看到任何包,我理解对吗?但是 Wireshark 是如何做到的呢?
-
@erickson 我在 Wireshark 的这个端口上看到了很多数据。但我的程序没有。如何查看数据?非常感谢
-
你的程序除了监听和接受一个套接字外,什么都不做。如果您想查看数据,您必须读取它。您的作业应该以 Java 不可行且超出您目前的技能的方式返回。