最近做UDP组播,能发送出去,也可以接收到本机发送的数据,但是无法接受其他设备发送的设备。求助啊。 代码如下:
经确认,其他设备发送成功的。
MulticastSocket socket = new MulticastSocket(12345);
InetAddress group = InetAddress.getByName("224.0.1.1");
socket.joinGroup(group);
socket.setLoopbackMode(true);
DatagramPacket packet;
byte[] buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
DatagramPacket outPacket = new DatagramPacket(new byte[0] ,
0 ,InetAddress.getByName("224.0.1.1") , 12345);
//设置发送用的DatagramPacket里的字节数据
byte[] bufff={1,2};
outPacket.setData(bufff);
socket.send(outPacket);// 发送
boolean g=false;
int tppp= socket.getTTL();
socket.setTTL((byte)32);
while(!g)
{
socket.receive(packet); // 可以接收到上面发送的 1,2 但是其他设备的无法接受到。
if(bufff!=null)
{
}
}
------解决方案--------------------
如果你的IP为:192.168.1.100,子网掩码为:255.255.255.0,则广播地址为:192.168.1.255
你把224.0.1.1换成:224.0.1.255后再试试