Java多播套接字不';我在Windows上没有收到任何东西

Java多播套接字不';我在Windows上没有收到任何东西,java,windows,sockets,multicast,receiver,Java,Windows,Sockets,Multicast,Receiver,我需要在多播发送和接收 这是我的发件人: public static void main(String[] args) { MulticastSocket socket = null; try { socket = new MulticastSocket(3575); int n = 1; while (n <= 100) { byte[] buf = new byte[256];

我需要在多播发送和接收

这是我的发件人:

public static void main(String[] args) {

    MulticastSocket socket = null;
    try {
        socket = new MulticastSocket(3575);
        int n = 1;
        while (n <= 100) {
            byte[] buf = new byte[256];
            // non aspetta la richiesta
            String dString = new Date().toString();
            buf = dString.getBytes();

            // invia il messaggio in broadcast
            InetAddress group = InetAddress.getByName("230.0.0.1");
            DatagramPacket packet = new DatagramPacket(buf, buf.length, group, 3575);
            socket.send(packet);
            System.out.println ("Broadcasting: "+dString);
            Thread.sleep(1000);
            n++;
        }
        socket.close();
    }catch(Exception e) { e.printStackTrace(); socket.close();}

}//main
publicstaticvoidmain(字符串[]args){
多播套接字=空;
试一试{
插座=新的多播插座(3575);
int n=1;

而(n我在我的笔记本电脑上编译并运行了你的代码,发送方和接收方在同一台机器上。它工作正常。(Fedora26 Linux,Java1.8.0_171)


问题似乎与您的网络有关,而不是与应用程序代码有关。因此,既然这不是编程问题,我认为您最好在ServerFault网站上问这个问题……他们专门从事网络等工作。

您不是在广播,而是在多播。如果此应用程序正在运行在Internet上,它需要路径中所有ISP的合作。检查是否启用了多播:@EJP应用程序在LAN上运行。我不需要Internet。@StephenC这是te结果:Ambito Rifermenti Ultimo Indirizzo----------------------------------------------0 0 SÌ224.0.0.1 0 2 SÌ224.0.0.251 0 1 SÌ224.0.0.252 0 1 SÌ239.255.255.250我在同一台笔记本电脑上用Oracle虚拟机在Ubuntu上尝试了我的代码。它可以工作。我认为问题出在Windows上。Windows可以做些什么。但是呢?“我认为你最好在ServerFault网站上问这个问题”
public static void main(String[] args) throws IOException {

    MulticastSocket socket = new MulticastSocket(3575);
    InetAddress group = InetAddress.getByName("230.0.0.1");
    socket.joinGroup(group);
    DatagramPacket packet;
    for (int i = 0; i < 100; i++) {
        byte[] buf = new byte[256];
        packet = new DatagramPacket(buf, buf.length);
        socket.receive(packet);
        String received = new String(packet.getData()).trim();
        System.out.println("Time: " + received);
    }
    socket.leaveGroup(group);
    socket.close();
}//main