关于UDP协议

UDP协议的特点。

1.UDP是一个无连接协议,传输数据之前接收端和发送端之间不建立连接。

想传输数据的时候就抓取数据扔出去,不监控是否被正确和全面的接受到。

2.因为不需要建立连接,也就不需要维护连接状态,会因此一台发送机器可以向多台接收机器传输相同的信息,只需要管理IP和接口。

3.UDP具有较好的实时性,效率高。原因在于UDP在传输数据的时候不建立逻辑连接,也不想TCP那样对数据进行检查。

 

UDP的使用场景

网络游戏,视频聊天和语音聊天类对实时性要求比较强的应用软件。

例如:在聊天的过程中如果出现丢包现象的话,充其量觉得有些卡顿,一般情况下要求对方从复一遍既可,不影响聊天的整体效果。

并且网络状况较好的时候,这种情况很少发生。

复制代码
public class Client_Udp {

    public static void main(String[] args) throws Exception {
        System.out.println("数据准备发送中");
        //1、使用DatagramScoket 指定端口 创建发送端
        DatagramSocket dgs =new DatagramSocket(8888);
        
        //2、准备数据一定转成字节数组
        String data="数据传输成功";
        byte[] datas=data.getBytes();
        
        //3、封装成DatagraPacket包裹,需要指定目的地
        DatagramPacket dgp =new DatagramPacket(datas, 0, datas.length, new InetSocketAddress("localhost",9999));
        
        //4、发送包裹Send()
        dgs.send(dgp);

        dgs.close();
    }
复制代码

 

复制代码
public class Server_Udp {

    public static void main(String[] args) throws Exception {
        System.out.println("数据接收中!");
        
        //1.使用DatagramSocket创建端口,指定接收端。
        DatagramSocket dgs=new DatagramSocket(9999);
        
        //2.准备容器封装成DatagramPacket包裹
        byte[] container =new byte[1024*60];
        DatagramPacket dgp =new DatagramPacket(container, 0,container.length);
        
        //3.阻塞式接受包裹receive
        dgs.receive(dgp);
        
        //4.分析数据
        byte[] data=dgp.getData();
        String st=new String(data,0,data.length);
        System.out.println(st);
        
        dgs.close();
复制代码
posted @   HappyBeibei  阅读(534)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示