UDP组播在2台不同的PC中不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDP组播在2台不同的PC中不起作用相关的知识,希望对你有一定的参考价值。
我准备了一个多播客户端 - 服务器。它可以在同一台计算机上运行,但是当我使用两台不同的PC时,它们似乎都没有收到任何东西。我在两台计算机上禁用了防火墙。
这是代码:
服务器:
public void send(byte[] sendThis) {
Thread t = new Thread() {
DatagramSocket socket;
InetAddress group;
@Override
public void run() {
try {
socket = new DatagramSocket();
group = InetAddress.getByName("230.0.0.0");
DatagramPacket packet = new DatagramPacket(sendThis, sendThis.length, group, 4446);
socket.send(packet);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
t.start();
try {
t.join(100);
} catch (InterruptedException e) {
}
}
客户:
public byte[] receive() {
MulticastSocket socket = null;
byte[] buf = new byte[2000];
byte[] received = new byte[2000];
try {
socket = new MulticastSocket(4447);
InetAddress group = InetAddress.getByName("230.0.0.0");
socket.joinGroup(group);
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
// received = packet.getData();
received = new String(packet.getData(), packet.getOffset(), packet.getLength()).getBytes();
socket.leaveGroup(group);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
return received;
}
在另一台机器(服务器4447,客户端4446)中更改端口
答案
看起来AP需要进行一些配置更改:应启用IGMP(Internet组管理协议)。
有些AP不支持此功能(我没有),所以我不得不在不同的网络中尝试它。
以上是关于UDP组播在2台不同的PC中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap 4 垂直轮播在 Bootstrap 5 beta 中不起作用