我的界面上有以下数据流:
08:52:45.777966 IP CICO.5120> 224.7.7.254.5701:UDP,长度30
08:52:45.778293 IP CICO.5120> 224.7.7.254.5701:UDP,长度27
08:52:46.176872 IP CICO.5120> 224.7.7.254.5701:UDP,长度30
我写了一个java类,它应该接收并详细说明这些数据包,这里是类的一部分:
DatagramPacket rxPachet = new DatagramPacket(buff, buff.length);
try {
String group = "224.7.7.254";
MulticastSocket udpSocket = new MulticastSocket(5701);
udpSocket.joinGroup(InetAddress.getByName(group));
while (true) {
new ShowMessage("....inside.....");
try {
udpSocket.receive(rxPachet);
buff = rxPachet.getData();
// SOME OTHER STUFF......
但是当我运行我的应用程序时,我看不到任何数据包被处理。
答案 0 :(得分:-1)
我想我发现了问题,这里是班级的新剪辑:
MulticastSocket udpSocket = new MulticastSocket(5701);
udpSocket.joinGroup(new InetSocketAddress("224.7.7.254", 5701), NetworkInterface.getByName("vmnet2"));
还有一件事,我必须添加选项-Djava.net.preferIPv4Stack = true如果在mac上运行,否则我得到异常"无法打开多播套接字"。 谢谢大家。