UDP单播代码实现

UDP单播代码实现

客户端代码

public class Client{
	public static void main(String[] args) throws Exception {
		// 1. 创建客户端对象
		DatagramSocket socket = new DatagramSocket();
		// 2. 创建数据包对象封装要发出去的数据
		byte[] bytes = "Hello server".getBytes();
		DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 6666);
		// 参数1: 封装要发出去的数据
		// 参数2:发送数据的大小
		// 参数3:服务端的IP地址
		// 参数4: 服务端程序的端口
		// 3. 发送数据
		socket.send(packet);

		System.out.println("客户端数据发送完毕")
		socket.close();
	}
}

服务端代码

public class Server {

	public static void main(String[] args) {
		// 1. 创建一个服务端对象注册端口
		DatagramSocket socket = new DatagramSocket(6666);

		// 2. 创建一个数据包对象,用于接收数据
		byte[] buffer = new byte[1024 * 64]; // 一个数据包不超过64kb
		DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

		// 3. 开始正式使用数据包来接收客户端发来的数据
		socket.reveive(packet)

		// 4. 从字节数组中,把接收的数据直接打印出来
		// 读取多少打印多少
		int len = packet.getLength();

		String rs = new String(buffer, 0, len);
		System.out.println(rs);

		// 发送端的信息
		System.out.println(packet.getAddress().getHostAddress());
		System.out.println(packet.getAddress().getPort());

		// 释放资源,一般不释放资源
		socket.close();
	}
}