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();
}
}