当前位置: 首页 > article >正文

java UDP 模板

UDP(User Datagram Protocol)是一种无连接的传输层协议,在 Java 中可以使用 UDP 进行网络编程。理论上没有服务器客户端之分,实际上算是有的,以下是 Java 中 UDP 编程的基本步骤和示例代码:

服务器端

  1. 创建DatagramSocket对象,指定端口号,用于接收客户端发送的数据报。
  2. 创建DatagramPacket对象,用于接收数据。
  3. 使用DatagramSocketreceive方法接收数据报,将数据存储在DatagramPacket中。
  4. DatagramPacket中获取数据,并进行处理。
  5. 关闭DatagramSocket
    import java.net.*;public class UDPServer {public static void main(String[] args) throws Exception  {// TODO Auto-generated method stub//1.创建DatagramSocket对象,指定端口号。用于接收客户端发送的数据报DatagramSocket socket = new DatagramSocket(6002); //2.创建DatagramPacket 对象,用于接收数据.byte [] buffer = new byte[1024];DatagramPacket packet = new DatagramPacket(buffer, buffer.length);//3.使用 DatagramSocket 的 receive 方法接收数据报,将数据存储在 DatagramPacket 中socket.receive(packet);//4.从DatagramPacket中获取数据,并进行处理String message = new String(packet.getData(),0,packet.getLength());System.out.println(message);//5.关闭DatagramSocketsocket.close();}}
    

    客户端

  6. 创建DatagramSocket对象,用于发送数据报。
  7. 创建DatagramPacket对象,指定要发送的数据、目标 IP 地址和端口号。
  8. 使用DatagramSocketsend方法发送数据报。
  9. 关闭DatagramSocket
    import java.net.*;
    public class UDPClient {public static void main(String[] args) throws Exception{// TODO Auto-generated method stub//1.创建 DatsagramSocket 对象 ,用于发送数据报DatagramSocket socket = new DatagramSocket();//2.创建DatagramPacket 对象,指定要发送的数据,目标IP地址和端口号//要发送的数据String message = "你好,服务器";byte [] buff = message.getBytes();//创建DatagramPacket 对象,指定目标IP地址和端口号InetAddress address = InetAddress.getByName("127.0.0.1");DatagramPacket packet = new DatagramPacket(buff, buff.length, address, 6002);//3.使用DatagramSocket 的send方法发送数据报socket.send(packet);//4.关闭DatagramSocketsocket.close();}}
    

http://www.lryc.cn/news/2402188.html

相关文章:

  • 【亲测有效】Mybatis-Plus更新字段为null
  • NLP学习路线图(二十五):注意力机制
  • 05 APP 自动化- Appium 单点触控 多点触控
  • MyBatis-Plus LambdaQuery 高级用法:JSON 路径查询与条件拼接的全场景解析
  • [AI绘画]sd学习记录(一)软件安装以及文生图界面初识、提示词写法
  • SpringBoot(八) --- SpringBoot原理
  • SpringBoot自动化部署全攻略:CI/CD高效实践与避坑指南
  • idea json生成实体类
  • C# 类和继承(抽象成员)
  • gitlab rss订阅失败
  • 鸿蒙仓颉语言开发实战教程:商城登录页
  • JavaScript 数组与流程控制:从基础操作到实战应用
  • STM32中自动生成Flash地址的方法
  • Matlab | MATLAB 中的插值详解
  • SkyWalking架构深度解析:分布式系统监控的利器
  • vue2中的render函数
  • 逆向工程开篇(连载中)
  • this.$set() 的用法详解(Vue响应式系统相关)
  • PARADISE:用于新生儿缺氧缺血性脑病(HIE)疾病识别与分割的个性化和区域适应性方法|文献速递-深度学习医疗AI最新文献
  • RabbitMQ 监控与调优实战指南(二)
  • WordPress子主题RiPro-V5van无授权全开源版(源码下载)
  • 保姆级Elasticsearch集群部署指导
  • PyQt实现3维数组与界面TableWidget双向绑定
  • StoreView SQL,让数据分析不受地域限制
  • 护网面试题目2025
  • Figma 与 Cursor 深度集成的完整解决方案
  • UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
  • rabbitmq Fanout交换机简介
  • 【机器学习】集成学习与梯度提升决策树
  • Palo Alto Networks Expedition存在命令注入漏洞(CVE-2025-0107)