特点
无连接、不可靠、快速传输
1.使用UDP通信实现:发送信息,接收信息
客户端实现步骤
1.创建DatagramSocket对象(客户端对象)--> 扔韭菜的人
2.创建DatagramPacket对象封装需要发送的数据(数据包对象)--> 韭菜盘子
3.使用DatagramSocket对象的send方法,传入DatagramPacket对象--> 开始抛出韭菜
4.释放资源
public class Client { public static void main(String[] args) throws Exception { // 1. 创建客户端对象(发韭菜出来的人) DatagramSocket socket=new DatagramSocket(); // 2. 创建数据包对象封装要发出去的数据(创建一个韭菜盒子) /*(byte buf[], int offset, int length, InetAddress address, int port) 参数一:封装要发出去的数据 参数二:发送出去的数据大小(字节个数) 参数三:服务端的IP地址(找到服务端主机) 参数四:服务端程序的端口 */ byte[]bytes="哈哈哈,我是快乐的ljm".getBytes(); DatagramPacket packet=new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(),6666); // 3. 开始正式发送这个数据包的数据出去了 socket.send(packet); System.out.println("客户端数据发送完毕"); socket.close();// 释放资源 } }
服务端实现步骤
1.创建DatagramSocket对象并指定端口(服务端对象)--> 接韭菜的人
2.创建DatagramPacket对象接收数据--> 韭菜盘子
3.使用DatagramSocket对象的receive方法,传入DatagramPacket对象--> 开始接受韭菜
4.释放资源
public class Server { public static void main(String[] args) throws Exception { System.out.println("服务端启动"); // 1. 创建一个服务端对象(创建一个接韭菜的人) 注册端口 DatagramSocket socket=new DatagramSocket(6666); // 2.创建一个数据包对象,用于接收数据的(创建一个韭菜盒子) byte[] buffer=new byte[1024*64]; // 64KB 协议设定,不可以超过64KB DatagramPacket packet=new DatagramPacket(buffer,buffer.length); // 3.正式利用数据包来接收客户端发来的数据 socket.receive(packet); // 4.从字节数组中,将接收到的数组直接打印出来 // 接收多少就倒出多少 int len= packet.getLength(); String rs=new String(buffer,0,len); System.out.println(rs); System.out.println(packet.getAddress().getHostAddress()); System.out.println(packet.getPort()); socket.close(); // 释放资源 } }