客户端
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;public class Client {public static void main(String[] args) throws Exception {//1.创建客户端对象DatagramSocket socket = new DatagramSocket();//2.创建数据包对象封装要发出去的数据/* public DatagramPacket(byte buf[], int offset, int length,InetAddress address, int port)*/Scanner sc = new Scanner(System.in);while (true){//将数据转成字节System.out.println("user:");String msg = sc.nextLine();if ("exit".equals(msg)){System.out.println("退出成功!");socket.close();break;}byte[] bytes =msg.getBytes();DatagramPacket packet = new DatagramPacket(bytes, bytes.length,InetAddress.getLocalHost(),6666);//3.发送socket.send(packet);}}
}
服务端
import java.nio.charset.StandardCharsets;import java.net.DatagramPacket;
import java.net.DatagramSocket;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]; //64kbDatagramPacket packet = new DatagramPacket(buffer, buffer.length);while (true){//接收数据socket.receive(packet);//打印出来int len = packet.getLength();String rs = new String(buffer,0,len, StandardCharsets.UTF_8);System.out.println(rs);//接收的客户端的信息System.out.println(packet.getAddress());System.out.println(packet.getPort());System.out.println("-----------------------------------------");}}
}
效果