标签:
1.客户端代码
1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 6 public class UDPClient { 7 public static void main(String[] args) throws IOException { 8 //1.定义服务器的地址、端口号,数据 9 InetAddress address = InetAddress.getByName("localhost"); 10 int port = 8800; 11 byte[] data = "用户名:admin; 密码:123".getBytes(); 12 //2.创建数据报,包含发送的数据信息 13 DatagramPacket packet = new DatagramPacket(data, data.length,address,port); 14 //3.创建DatagramSocket 对象 15 DatagramSocket socket = new DatagramSocket(); 16 //4.向服务器端发送数据报 17 socket.send(packet); 18 /** 19 * 接收服务器端响应的数据 20 */ 21 //1.创建数据报,用于接收服务器端响应的数据 22 byte[] data2 = new byte[1024]; 23 DatagramPacket packet2 = new DatagramPacket(data2, data2.length); 24 //2.接收服务器响应的数据 25 socket.receive(packet2); 26 //3.读取数据 27 String reply = new String(data2, 0, packet2.getLength()); 28 System.out.println("我是客户端,我收到的服务器信息:" + reply); 29 //4.关闭资源 30 socket.close(); 31 } 32 }
2.服务器端代码
1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 /** 6 * 7 * UDP 服务器端 8 * 9 */ 10 public class UDPServer { 11 public static void main(String[] args) throws IOException { 12 //1.创建服务器端DatagramSocket,指定端口 13 DatagramSocket socket = new DatagramSocket(8800); 14 //2.创建数据报,用于接收客户端发送的数据 15 byte[] data = new byte[1024];//创建字节数组,指定接收的数据包的大小。 16 DatagramPacket packet = new DatagramPacket(data, data.length); 17 //3.接收客户端发送的数据 18 System.out.println("****服务器端已经启动,等待客户端发送信息"); 19 socket.receive(packet);//此方法在接收到数据报之前会一直阻塞 20 //4.读取数据 21 String info = new String(data, 0, packet.getLength()); 22 System.out.println("我是服务器,客户端说:" + info); 23 24 /** 25 * 向客户端响应数据 26 */ 27 //1.定义客户端的地址、端口号,数据 28 InetAddress address = packet.getAddress(); 29 int port = packet.getPort(); 30 byte[] data2 = "欢迎您!".getBytes(); 31 //把数据发送给客户端 32 DatagramPacket packet2 = new DatagramPacket(data2, data2.length,address,port); 33 socket.send(packet2); 34 //4.关闭socket 35 socket.close(); 36 } 37 }
标签:
原文地址:http://www.cnblogs.com/gylhaut/p/5270829.html