UDP 与网络基础
了解 DatagramSocket、UDP 通信、IP 地址与端口
UDP 与网络基础
UDP 是无连接协议,速度快但不保证可靠送达。
学完本章你将: 了解 DatagramSocket、IP 地址、协议对比。
UDP 发送端
java
DatagramSocket socket = new DatagramSocket();
String message = "Hello via UDP!";
byte[] data = message.getBytes();
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(
data, data.length, address, 9999);
socket.send(packet);
socket.close();
UDP 接收端
java
DatagramSocket socket = new DatagramSocket(9999);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
System.out.println("等待 UDP 数据...");
socket.receive(packet); // 阻塞等待
String received = new String(packet.getData(), 0, packet.getLength());
System.out.println("收到:" + received +
" 来自 " + packet.getAddress());
socket.close();
InetAddress 网络基础
java
// IP 地址
InetAddress local = InetAddress.getLocalHost();
System.out.println(local.getHostName()); // 主机名
System.out.println(local.getHostAddress()); // IP
InetAddress remote = InetAddress.getByName("www.baidu.com");
System.out.println(remote.getHostAddress()); // 解析后的 IP
TCP vs UDP
| 特性 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 保证送达,有序 | 不保证 |
| 速度 | 慢 | 快 |
| 场景 | HTTP、文件传输 | 视频流、游戏、DNS |
| 类比 | 打电话 | 寄明信片 |