我想捕获特定多播IP地址和端口号上的网络流量。
出于测试目的,我通过225.1.1.7 ip和3100端口上的网络重放pcap文件。
我尝试使用下面的命令 -
使用tcpdump捕获sudo tcpdump -i eno1 -s0 -vv host 225.1.1.7 and port 3100
它是工作文件。
我的 java程序 -
class Temp {
public static void main(String[] args) throws UnknownHostException, IOException {
int port = 3100;
String group = "225.1.1.7";
MulticastSocket s = new MulticastSocket(port);
s.joinGroup(InetAddress.getByName(group));
byte buf[] = new byte[1024];
DatagramPacket pack = new DatagramPacket(buf, buf.length);
s.receive(pack);
System.out.println("Received data from: " + pack.getAddress().toString()
+ ":" + pack.getPort() + " with length: "
+ pack.getLength());
System.out.write(pack.getData(), 0, pack.getLength());
s.leaveGroup(InetAddress.getByName(group));
s.close();
}
}
为什么上面的java程序不会从同一个组播ip和端口接收任何数据?