实现功能:客户端发送一个字符串(可以为汉字),服务器端接收并显示
服务器端程序:
package udpServer; import java.io.*; import java.net.*; /** * 服务端 * 1、创建服务+端口 * 2、准备接受容器 byte数组 * 3、把接收容器封装成包 DatagramPacket * 4、接受数据 * 5、分析数据 */ public class server { public static void main(String[] args) throws IOException { //1.创建服务+端口 DatagramSocket server = new DatagramSocket(9999); //2.准备接受容器 byte[] container = new byte[1024]; //3.封装成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受数据 (阻塞式接受) server.receive(packet); //5.分析数据 byte[] data = packet.getData(); System.out.println(new String(data, "utf-8")); //6.释放资源 server.close(); } }
客户端程序:
package udpClient; import java.io.*; import java.net.*; /** * 1、创建客户端+端口 * 2、准备数据 字节数组 * 3、给数据打包 并指定发送的目的地和端口 * 4、发送 * 5、释放 * * 思考 : 发送有类型的数据 怎么处理 如对象 数字 等等 */ public class client { public static void main(String[] args) throws IOException { //1.创建客户端+端口 DatagramSocket client = new DatagramSocket(8888); //2.准备要发送的数据 字节数组 String msg = "UDP编程"; byte[] data = msg.getBytes("utf-8"); //3.给数据打包 并指定发送的目的地和端口 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.发送 client.send(packet); //5.释放 client.close(); } }