java 发送和接收udp数据 udp数据帧结构

本文介绍了在Java中如何实现UDP的单播、广播和组播通信,包括发送和接收代码示例。同时,讨论了UDP数据帧结构,指出源端口、目的端口、UDP长度和校验和占据了前8个字节,用于数据解析。
摘要由CSDN通过智能技术生成

项目开发中,有个需求是接收udp的组播信息,获取帧并解析其中的内容。之前没有接触过udp的通讯以及数据帧。查阅资料对udp的通讯间的发送与接收实现记录如下。

UDP有三种通讯方式,分别是,单播 、广播、还有组播。

  1. 单播: 单机与单机之间的通讯

  1. 广播: 当前主机与所在网络中的所有主机通讯

  1. 组播: 当前主机与选定的一组主机通讯


一、单播

  • 发送端代码

public class UdpServer {
    /**
     * 发送端
     */
    public static void main(String[] args) throws Exception {
        System.out.println("=============发送端启动===========");
        // 1.创建发送端对象 参数是绑定本地地址和一个特定的端口号
        DatagramSocket socket = new DatagramSocket(6666);

        // 2.创建一个数据包对象封装数据
        /**
         * 参数1:封装要发送的数据
         * 参数2:发送数据的大小
         * 参数3:服务端的IP地址
         * 参数4:服务端的端口
         */
        byte[] bytes = "这是一条yyt的测试数据".getBytes();
        InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
        int port = 8888 ;
        DatagramPacket packet = new DatagramPacket(bytes,bytes.length, inetAddress,port);

        // 3.发送数据
        socket.send(packet);

        // 4.关闭管道
        socket.close();
    }
}
  • 接收端代码

public class UdpClient {
    public static void main(String[] args) throws Exception {
        System.out.println("=============客户端启动=====&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值