UDP
1.服务器(server)
import java.io.IOException;
import java.net.*;
import java.util.HashMap;
import java.util.Map;
public class Server {
// 预定义字典
private static final Map<String, String> dictionary;
//字典初始化
static {
dictionary = new HashMap<>();
dictionary.put("apple", "苹果");
dictionary.put("pear", "梨");
}
//定义服务器端口,范围在[0, 65535]
public static final int PORT = 8888;
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(PORT);//一个对象,代表一个Socket
while (true) {
// 通过 socket 接收客户端(client)发送过来的数据——请求
System.out.println(1);
byte[] receiveBuffer = new byte[1024];
System.out.println(2);
DatagramPacket receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);//一个对象,代表发送/接收的数据包
System.out.println(3);
socket.receive(receivePacket); // 方法会阻塞
System.out.println(4);
// 利用 DatagramPacket 可以拿到通信的元信息
InetAddress remoteAddress = receivePacket.getAddress();//得到客户端地址
SocketAddress socketAddress = receivePacket.getSocketAddress();//得到客户端地址+端口
int remotePort = receivePacket.getPort();//得到客户端端口
int length = receivePacket.getLength();//得到客户端发送数据的长度
System.out.println(remoteAddress);
System.out.println(socketAddress)