服务端程序
package com.test.udp.test2; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; /** * 标准方式udp */ public class UdpServer2 { private static boolean bStart=true; public static void main(String[] args) throws Exception { //开启服务端口 DatagramSocket datagramSocket=new DatagramSocket(10003); byte[] bytes=new byte[1024]; new Thread(new Runnable() { @Override public void run() { System.out.println("server 开始监听:"); while (bStart){ try { //接受数据 DatagramPacket datagramPacket=new DatagramPacket(bytes, bytes.length); datagramSocket.receive(datagramPacket); System.out.println("server receive: "+new String(bytes)); //发送数据,获取客户端的ip和端口 InetAddress address = datagramPacket.getAddress(); int port = datagramPacket.getPort(); byte[] result = "Hello Client".getBytes(); DatagramPacket packet = new DatagramPacket(result, result.length, address, port); datagramSocket.send(packet); } catch (IOException e) { e.printStackTrace(); } } } }).start(); Scanner scanner = new Scanner(System.in); while (true){ String line = scanner.nextLine(); if("01234".equals(line)){ System.out.println("server关闭连接"); bStart=false; break; } } datagramSocket.close(); } }客户端程序
package com.test.udp.test2; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; public class UdpClient2 { private static boolean bStart=true; public static void main(String[] args) throws Exception { DatagramSocket datagramSocket=new DatagramSocket(); InetAddress address= InetAddress.getByName("10.10.1.99"); Scanner scanner=new Scanner(System.in); byte[] bytes=new byte[1024]; while(bStart){ String line = scanner.nextLine(); byte[] b=line.getBytes(); //连接服务端,发送数据 DatagramPacket packet=new DatagramPacket(b, b.length, address, 10003); datagramSocket.send(packet); //接受服务端的返回值 DatagramPacket reply = new DatagramPacket(bytes, bytes.length); datagramSocket.receive(reply); System.out.println(new String(bytes)); if("01234".equals(line)){ System.out.println("client关闭连接"); bStart=false; break; } } datagramSocket.close(); } }