服务端:
1 package udp; 2 3 import java.io.IOException; 4 import java.net.DatagramPacket; 5 import java.net.DatagramSocket; 6 import java.net.SocketException; 7 8 //服务器 9 public class AskServer { 10 public static void main(String[] args) throws IOException { 11 //1.创建一个DatagramSocket 用来发送或者接收数据的 12 DatagramSocket socket = new DatagramSocket(8888);//端口用来接收数据 13 14 //2.使用DatagramSocket接收数据 15 //接收数据 要使用 DatagramPacket 16 byte [] buf = new byte [1024];//接收数据不需要知道对方IP 17 DatagramPacket packet = new DatagramPacket(buf, buf.length); 18 socket.receive(packet); 19 //System.out.println(packet.getLength());//数据包的长度 20 //System.out.println(packet.getData());//对方发送的数据 21 //System.out.println(new String(packet.getData(),0,packet.getLength())); 22 System.out.println("来自客户端的消息:"+new String(buf,0,packet.getLength())); 23 /* System.out.println(packet.getAddress());//对方的ip? 24 System.out.println(packet.getPort());//对方的端口号*/ 25 26 //3.向客户端发送数据 27 String reply ="亲,在的"; 28 byte [] buf2 = reply.getBytes(); 29 //对方的IP可能随时变化 通过接收的数据包能够获取对方的ip和端口 30 DatagramPacket packet2 = new DatagramPacket(buf2, buf2.length, packet.getAddress(), packet.getPort()); 31 socket.send(packet2); 32 33 //4.关闭 34 socket.close(); 35 } 36 }