1. 程式人生 > 其它 >Java 組播 外網不支援

Java 組播 外網不支援

技術標籤:Network筆記Java

package com.xiuye.util.network;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.nio.charset.StandardCharsets;

/**
 * @author Dell
 */
public class MulticastServer {


    public static void main(String[] args) throws IOException {

        System.out.println("server:");

        MulticastSocket server = new MulticastSocket(8888);
//        server.setLoopbackMode(false);
        server.setTimeToLive(32);

        InetAddress address = InetAddress.getByName("224.0.0.9");
        server.joinGroup(address);

        byte[] data = new byte[1024];
        DatagramPacket packet = new DatagramPacket(data, data.length);
        server.receive(packet);
        System.out.println("receive:" + new String(packet.getData(), StandardCharsets.UTF_8));

        server.leaveGroup(address);
        server.close();


    }

}
package com.xiuye.util.network;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.nio.charset.StandardCharsets;

/**
 * @author Dell
 */
public class MulticaseClient {

    public static void main(String[] args) throws IOException {

        System.out.println("client:");

        MulticastSocket client = new MulticastSocket();
//        client.setLoopbackMode(true);
        client.setTimeToLive(32);
        InetAddress address = InetAddress.getByName("224.0.0.9");
//        client.joinGroup(address);

        byte[] msg = "Hello,I am client.".getBytes(StandardCharsets.UTF_8);
        client.send(new DatagramPacket(msg, msg.length, address, 8888));

//        client.leaveGroup(address);
        client.close();

    }
}