我已经编写了一个基本代码,使用这个链接从 java 中的 windows 机器多播 UDP 数据包。接收器是几部安卓手机,它们运行同一链接中给出的接收器代码。
这是发件人代码:
int mcPort = 4446;
String mcIPStr = "225.4.5.6";
InetAddress group = InetAddress.getByName(mcIPStr);
DatagramSocket udpSocket = new DatagramSocket();
byte[] c = "SENT".getBytes();
DatagramPacket packet = new DatagramPacket(c, c.length, group, mcPort);
udpSocket.send(packet);
udpSocket.close();
这是接收器代码:
int mcPort = 4446;
MulticastSocket mcSocket = new MulticastSocket(mcPort);
InetAddress group = InetAddress.getByName("225.4.5.6");
mcSocket.joinGroup(group);
DatagramPacket packet = new DatagramPacket(new byte[PACKET_SIZE],PACKET_SIZE);
mcSocket.receive(packet);
byte[] data = packet.getData();
String msg = new String(data);
System.out.println("message:"+msg);
当windows机器与接收节点连接到同一个wifi时,数据包被正确接收。但我想在没有外部 wifi 的情况下实现相同的功能。
所以我使用这个链接将我的 Windows 机器配置为一个接入点。节点现在已连接到此 AP。根据我的理解,节点现在应该收到数据包,但他们没有!
我错过了什么?