UDP 编程
// 创建一个缓冲区
byte[] sendMsgBytes = "Hello World!".getBytes();
// 创建发送端 Socket 对象
try (DatagramSocket sendSocket = new DatagramSocket();) {
// 获取本机通信地址
InetAddress address = InetAddress.getLocalHost();
// 打包数据
DatagramPacket sendPacket = new DatagramPacket(sendMsgBytes, 0, sendMsgBytes.length, address, 8080);
// 发送数据
sendSocket.send(sendPacket);
// 发送端等待接收端接收成功后的回应
// 创建一个缓冲区,容量尽量设置大一点因为不知道发送过来的信息有多大
byte[] receiveByte = new byte[1024 * 1024];
// 接受数据报
DatagramPacket receivePacket = new DatagramPacket(receiveByte, 0, receiveByte.length);
// 接收数据
sendSocket.receive(receivePacket);
// 获取接收端发送过来的真实长度以及数据
byte[] data = receivePacket.getData();
int dateLen = receivePacket.getLength();
String receiveMessage = new String(data, 0, dateLen);
// 获取发送者的IP
System.out.println("接收来自 " + receivePacket.getAddress().getHostAddress() + " 的消息:" + receiveMessage);
} catch (IOException e) {
throw new RuntimeException(e);
}最后更新于