UDP编程,发送端与接收端,字符串通信

本文详细介绍了UDP通讯中的关键步骤,包括发送端与接收端的端口匹配原则,以及数据包的构造与解析过程。通过具体代码示例,展示了如何在Java环境下实现UDP的数据发送与接收,强调了端口一致性和数据处理的重要性。

 

包的端口一定要和接收端保持一致

 

/**
 * UDP通讯,发送端
 */
package com.hpu.day12;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

public class TestSender {
    public static void main(String[] args) throws Exception {
        /**
         * 发送端
         * 1、创建客户端 + 端口
         * 2、准备数据
         * 3、打包(发送的地点 及端口)
         * 4、发送
         * 5、释放
         */


        // 1、创建客户端 + 端口
        System.out.println("发送端发送中。。。");
        System.out.println("请注意接收。。。");
        DatagramSocket client = new DatagramSocket(6666);

        // 2、准备数据
        String msg = "收到消息了";
        byte[] data = msg.getBytes();

        // 3、打包(发送的地点 及端口)
        DatagramPacket packet = new DatagramPacket(data,data.length,
                new InetSocketAddress("localhost",8888));

        // 4、发送
        client.send(packet);

        // 5、释放
        client.close();
    }
}

 

 

/**
 * UDP通讯,接收端
 */
package com.hpu.day12;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class TestReceiver {
    public static void main(String[] args) throws Exception {
        /**
         * 接收端
         * 1、创建服务端  + 接口
         * 2、准备接收容器
         * 3、封装成 包
         * 4、接收数据
         * 5、分析数据
         * 6、释放
         */

         // 1、创建服务端  + 接口
        System.out.println("正在接收。。。");
        DatagramSocket server = new DatagramSocket(8888);

         // 2、准备接收容器
        byte[] container = new byte[1024*60];

         // 3、封装成 包
        DatagramPacket packet = new DatagramPacket(container,container.length);

         // 4、接收数据
        server.receive(packet);

         // 5、分析数据
        byte[] data = packet.getData();
        int len = packet.getLength();
        System.out.println(new String(data,0,len));

         // 6、释放
        server.close();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值