问题描述
我用java的MulticastSocket写一个多播的demo,在同一台机器上测试发送和接收数据没有问题,但是在笔记本上发送的多播消息,在台式机上接收不到,有可能是什么原因?笔记本连的是无线的路由器,台式机连的是有线的路由器,两个路由器是在同一个内网连着的.代码如下:发送端:importjava.awt.AWTException;importjava.awt.Robot;importjava.awt.event.KeyEvent;importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.InetAddress;importjava.net.MulticastSocket;publicclassSender{publicstaticvoidmain(String[]args)throwsAWTException,IOException,InterruptedException{broadcast();}publicstaticvoidbroadcast()throwsIOException,InterruptedException{Stringmsg="Hello";InetAddressgroup=InetAddress.getByName("230.5.6.7");MulticastSockets=newMulticastSocket(6789);s.joinGroup(group);while(true){DatagramPackethi=newDatagramPacket(msg.getBytes(),msg.length(),group,6789);s.send(hi);Thread.sleep(1000);}}}接收端:importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.InetAddress;importjava.net.MulticastSocket;publicclassReceiver{publicstaticvoidmain(String[]args)throwsIOException{InetAddressgroup=InetAddress.getByName("230.5.6.7");MulticastSocketsock=newMulticastSocket(6789);sock.joinGroup(group);byte[]buf=newbyte[100];DatagramPacketp=newDatagramPacket(buf,buf.length);while(true){sock.receive(p);byte[]recv=p.getData();Stringstr=newString(recv);System.out.println(":"+str);}}}