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 中不起作用

仅 CSS3 的轮播在 Firefox 中不起作用

猫头鹰轮播在 WordPress 主题中不起作用。帮我解决这个问题

按钮在片段中不起作用

Javascript代码片段在drupal中不起作用

java代码在片段活动中不起作用