服务端:

 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 }
AskServer.java

相关文章: