UDP编程
服务端
服务端是作为信息的接收方
package com.demo02.demo01.udp.demo01; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 服务端 * 1、创建服务端 +端口 * 2、准备接受容器 * 3、封装成 包 * 4、接受数据 * 5、分析数据 * 6、释放 */ public class MyServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //1、创建服务端 +端口 DatagramSocket server = new DatagramSocket(8888);//{ip:port} //2、准备接受容器 byte[] container = new byte[1024]; //3、封装成 包 DatagramPacket(byte[] buf, int length) DatagramPacket packet =new DatagramPacket(container,container.length) ; System.out.println(1); //4、接受数据----阻塞状态 server.receive(packet); System.out.println(2); //5、接收到数据之后,执行分析数据 byte[] data =packet.getData(); int len =packet.getLength(); System.out.println(new String(data,0,len)); //6、释放 server.close(); } }
客户端
客户端作为信息的提交方
package com.demo02.demo01.udp.demo01; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; /** * 客户端 * 1、创建客户端 +端口 * 2、准备数据 * 3、打包(发送的地点 及端口) * 4、发送 * 5、释放 */ public class MyClient { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //1、创建客户端 +端口 DatagramSocket client = new DatagramSocket(6666); //2、准备数据 String msg ="udp编程"; byte[] data =msg.getBytes(); //3、打包(发送的地点 及端口) //DatagramPacket(byte[] buf, int length, InetAddress address, int port) DatagramPacket packet = new DatagramPacket(// //new InetSocketAddress("localhost",8888) 找到传输对象的套接字(ip:port) data,data.length,new InetSocketAddress("localhost",8888)); //4、发送 client.send(packet); //5、释放 client.close(); } }