UDP发送和接受数据

发送数据

java 复制代码
public class sendmessage {
    public static void main (String[] args) throws IOException {
        DatagramSocket ds=new DatagramSocket();

        //打包数据开始
        String s="hello world";
        byte[] b=s.getBytes();
        //获取InetAddress的对象
        InetAddress address=InetAddress.getByName("127.0.0.1");
        //端口号
        int port=10086;
        //打包数据结束

        DatagramPacket dp=new DatagramPacket(b,b.length,address,port);

        //发送数据
        ds.send(dp);
        //释放数据
        ds.close();
    }
}

接受数据

java 复制代码
public class receivemessage {
    public static void main (String[] args) throws IOException {
        //接受的时候一定要绑定端口
        //绑定的端口一定要和发送的端口保持一致
        DatagramSocket ds=new DatagramSocket(10086);

        //接受数据包
        byte[] b=new byte[1024];
        DatagramPacket dp=new DatagramPacket(b,b.length);
        ds.receive(dp);

        //解析数据包
        //获取数据
        byte[] result=dp.getData();
        int len=dp.getLength();
        //获取发送方的地址
        InetAddress address=dp.getAddress();
        //获取发送方的发送端口
        int port=dp.getPort();

        System.out.println(new String(result,0,len));
        System.out.println("发送方的地址"+address+"发送方的发送端口"+port);

        ds.close();
    }
}
要先运行接收端再运行发送端,否则无法收到数据

初学者,见解不足,如有错误请指出

相关推荐
冷崖8 分钟前
网络学习-异步IO(八)
服务器·网络·学习
檀越剑指大厂2 小时前
从被动查询到主动贡献:Answer的知识社区进化论
网络
广然2 小时前
跨厂商(华为 & H3C)防火墙 GRE 隧道部署
网络·华为·防火墙·h3c
Hello.Reader2 小时前
Flink DataStream 从 WindowStrategy 到 WindowProcessFunction 的全链路
网络·数据库·flink
交换机路由器测试之路2 小时前
交换机路由器基础(一)基础概念
网络·智能路由器·路由器·交换机·网络基础·通信基础
国服第二切图仔3 小时前
Rust开发之使用 Trait 定义通用行为——实现形状面积计算系统
开发语言·网络·rust
7ACE3 小时前
Wireshark TS | 接收数据超出接收窗口续
网络协议·tcp/ip·wireshark
深圳南柯电子3 小时前
纯电汽车EMC整改:预防性设计节省47%预算|深圳南柯电子
网络·人工智能·汽车·互联网·实验室·emc
国服第二切图仔4 小时前
Rust开发之使用match和if let处理Result错误
开发语言·网络·rust
huangql5204 小时前
Nginx 从零到精通 - 最详细的循序渐进教程
开发语言·网络·nginx