UDP知识点
一、UDP通信的过程就像是货运公司在两个码头间发送货物一样,
JDK中提供了DatagramPacket类、DatagramSocket类,用于封装UDP通信中发送或者接收的数据。
public class UDPsend { public static void main(String[] args) throws IOException { // 创建socket对象 DatagramSocket ds = new DatagramSocket(); Scanner sc = new Scanner(System.in); while (true) { // 创建数据包发送的数据 byte[] by = sc.next().getBytes(); //控制台输入什么 后面就能输出什么 InetAddress ine = InetAddress.getByName("127.0.0.1"); //发送的ip地址 以本机为准 假如要发送到别人电脑上 需要在同一局域网下 // 明确接受端的ip和端口号 DatagramPacket dp = new DatagramPacket(by, by.length, ine, 7777); // 发送 ds.send(dp); } } }
public class UDPRecieve { public static void main(String[] args) throws IOException { // 创建Socket 对象 明确端口号 DatagramSocket ds=new DatagramSocket(7777); //创建字节数组接受数据 byte[] by=new byte[1024]; while(true){ //创建数据包对象 DatagramPacket dp=new DatagramPacket(by, by.length); ds.receive(dp); //拆包 //获取数据长度 int length = dp.getLength(); //获取ip地址 String ip=dp.getAddress().getHostAddress(); //获取端口号 int port = dp.getPort(); System.out.println("ip地址为" + ip + "端口号" + port + "" + "发送的内容:" + new String(by, 0, length)); } } }
这样控制台输入什么 后面就能输出什么;打印结果如下:

欢迎各位大神指点和评论;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程