macos catalina,java,多播不工作

brc7rcf0  于 2021-07-11  发布在  Java
关注(0)|答案(0)|浏览(200)

我有两个iMac坐在同一个网络上。一个是老的,运行莫哈韦另一个是新的,运行卡塔琳娜。两者都使用java8,并且都收听相同的多播频道。旧的接收多播很好,新的没有。
tcpdump显示数据包正在新机器上接收,但是java多播侦听器没有显示它们。
以下是java多播侦听器代码:

import java.io.*;
import java.net.*;

public class MulticastListenerBare {

    public MulticastListenerBare(String ip, int port) {
    try {
        InetAddress group = InetAddress.getByName(ip);
        MulticastSocket sin = new MulticastSocket(port);
        sin.joinGroup(group);
        byte[] buf = new byte[64*1024];
        DatagramPacket pin = new DatagramPacket(buf, buf.length,
                            group, port);
        System.out.printf("Listening to %s : %d\n", ip, port);
        while (true) {
        sin.receive(pin);
        String data = new String(buf, 0, pin.getLength());
        System.out.println("Received: \n" + data);
        }
    }catch (IOException e) {
        System.out.println("Error: " + e.getMessage());
    }catch (Throwable t) {
        System.out.println("Unknown Throwable happened: " + t.getMessage());
    }
    }//constructor

    public static void main(String[] args) {
    if(args.length != 2) {
        System.out.println
        ("usage: java -Djava.net.preferIPv4Stack=true " +
         "MulticastListener ip port\n");
        System.exit(-1);
    }
    try {
        int port = Integer.parseInt(args[1]);
        new MulticastListenerBare(args[0], port);
    }catch(NumberFormatException e) {
        System.out.println("error parsing port #: '" + args[1] + "'");
    }
    }//main
}//MulticastListenerBare

在catalina的系统首选项“security&privacy”下,我已经授予java和terminal完全磁盘访问权限。
程序从终端运行如下: java -Djava.net.preferIPv4Stack=true MulticastListenerBare 239.192.2.25 52025 你知道为什么它不接多播吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题