一、基本的UDP操作
1.启动服务端
public static void startUDPServer() {
/*
服务端要做的事情
*/
try {
System.out.println("启动服务器:");
DatagramSocket server = new DatagramSocket(PORT);//指定UDP服务器绑定的端口、地址
byte[] buffer = new byte[512];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);//定义接受的包大小
server.receive(packet);//阻塞接收数据包
String result = new String(buffer);
System.out.println("result:"+result);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
2.启动客户端
public static void startUdpClient() {
DatagramSocket datagramSocket = null;
try {
//客户端不能去绑定UDP端口,只有服务端才去绑定端口
//datagramSocket = new DatagramSocket(PORT);
datagramSocket = new DatagramSocket();
SocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(),PORT);
System.out.println("please enter:");
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextLine()) {
String input = scanner.nextLine();
//DatagramPacket packet = new DatagramPacket(input.getBytes(),input.getBytes().length);
//datagramSocket.connect(address); //packe中没有指定送达地址时,则在这里connect
//datagramSocket.send(packet);
DatagramPacket packetWithAddr = new DatagramPacket(input.getBytes(),input.getBytes().length,address);
datagramSocket.send(packetWithAddr);
}
} catch (IOException e) {
e.printStackTrace();
}
}