网络编程 p5 UDP编程

这篇具有很好参考价值的文章主要介绍了网络编程 p5 UDP编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UDP网络通信编程

  • 基本介绍

    1. 类DatagramSocket和DatagramPacket实现了基于UDP协议网络程序。
    2. UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。
    3. DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。
    4. UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接送方的连接。
  • 基本流程

    1. 核心的两个类/对象 DatagramSocket/DatagramPacket
    2. 建立发送端,接收端
    3. 建立数据包
    4. 调用DatagramSocket的发送和接收方法
    5. 关闭DatagramSocket

    网络编程 p5 UDP编程

  • UDP网络编程原理示意图

    网络编程 p5 UDP编程

  • 注意事项

    1. 没有明确的服务端和客户端,演变成数据的发送端和接收端;
    2. 接收数据和发送数据是通过DatagramSocket对象完成的;
    3. 将数据封装到DatagramPacket对象/装包;
    4. 当接收到DatagramPacket对象,需要进行拆包,取出数据;
    5. DatagramSocket可以指定在哪个端口接收数据;
  • 代码演示文章来源地址https://www.toymoban.com/news/detail-586854.html

    package com.hspedu.udp;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    
    /**
     * @author: 86199
     * @date: 2023/5/17 17:49
     * @description: UDP
     */
    public class UDPReceiverA {
        public static void main(String[] args) throws IOException {
            //1. 创建一个DatagramSocket 对象,准备在9999接收数据
            DatagramSocket socket = new DatagramSocket(9999);
    
            //2. 构建一个DatagramPacket对象,用来接收数据
            //    UDP,一个数据包最大64K
            byte[] bytes = new byte[1024];
            DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
    
            //3. 调用接受方法,将通过网络传输的 DatagramPacket 对象填充到packet对象
            //   注意:当有数据发送到 本机的9999端口时,就会接收到数据
            //        如果没有数据包发送到 本机的9999端口,就会阻塞等待
            System.out.println("接收端A 等待接收数据……");
            socket.receive(packet);
    
            int length = packet.getLength();
            byte[] data = packet.getData();
    
            String s = new String(data, 0, length);
            System.out.println(s);
    
            //a端作发送端
            byte[] data2 = "好的,明天见".getBytes();
            DatagramPacket packet1 =
                    new DatagramPacket(data2, data2.length, InetAddress.getByName("10.15.205.153"), 9998);
    
            socket.send(packet1);
    
            //关闭资源
            socket.close();
            System.out.println("A端退出...");
        }
    }
    
    
    package com.hspedu.udp;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    
    /**
     * @author: 86199
     * @date: 2023/5/17 17:50
     * @description: UDP
     */
    public class UDPSenderB {
        public static void main(String[] args) throws IOException {
            //1. 创建 DatagramSocket 对象,准备在9998端口 发送数据
            DatagramSocket socket = new DatagramSocket(9998);
    
            //2. 将需要发送的数据,封装到 DatagramPacket对象
            byte[] data = "hello,明天去吃火锅吧".getBytes();
    
            //说明:封装 DatagramPacket对象 data 内容字节数组,data.length,主机(IP),端口
            DatagramPacket packet =
                    new DatagramPacket(data, data.length, InetAddress.getByName("10.15.205.153"), 9999);
    
            socket.send(packet);
    
            //B端作接收端
            byte[] bytes = new byte[1024];
            DatagramPacket packet1 = new DatagramPacket(bytes, bytes.length);
    
            System.out.println("接收端B 等待接收数据……");
            socket.receive(packet1);
    
            int length = packet1.getLength();
            byte[] data1 = packet1.getData();
    
            String s = new String(data1, 0, length);
            System.out.println(s);
    
    
            //关闭资源
            socket.close();
            System.out.println("B端退出...");
        }
    }
    
    

到了这里,关于网络编程 p5 UDP编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java网络编程之IP,端口号,通信协议(UDP,TCP)

    ① C/S :客户端/服务器 在用户本地需要下载安装客户端程序,在远程有一个服务器端程序。 优点:画面精美,用户体验好 缺点:用户需要下载更新 ② B/S :浏览器/服务器 只需要一个浏览器,用户通过指定网址访问对应的服务器。 优点:不需要开发客户端,只需要页面+服务

    2024年02月03日
    浏览(49)
  • 【Java】网络编程与Socket套接字、UDP编程和TCP编程实现客户端和服务端通信

    为什么需要网络编程? 现在网络普及程序越来越高,网络上保存着我们日常生活中需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 什么是网络编程? 网络编程,指网络上的主机,通过不同的进程以程序的方式实现网络通信(网络数据传输)

    2024年02月17日
    浏览(51)
  • 【Java网络编程】基于UDP-Socket 实现客户端、服务器通信

    ​ 哈喽,大家好~我是你们的老朋友: 保护小周ღ   本期为大家带来的是网络编程的 UDP Socket 套接字,基于 UDP协议的 Socket 实现客户端服务器通信 ,Socket 套接字可以理解为是,传输层给应用层提供的一组 API,如此程序,确定不来看看嘛~~ 本期收录于博主的专栏 : JavaEE_保

    2024年02月02日
    浏览(46)
  • 网络编程 p5 UDP编程

    基本介绍 类DatagramSocket和DatagramPacket实现了基于UDP协议网络程序。 UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 DatagramPacket对象封装了UDP数据报, 在数据报中包含了发送端的IP地址和端口号

    2024年02月16日
    浏览(28)
  • Flask服务器与客户端基本通信【Unity网络编程(三)】

    这里先演示基于Python的客户端和服务器的登录实现。 1.Flask服务器端(GET和POST请求接收实现) 1.GET和POST区别:(简单理解) 1.GET因为是读取,就可以对GET请求的数据 做缓存 (浏览器)。不能随意多次执行。POST不能缓存(所以如果重新执行POST请求,浏览器会弹框提示你可能对丢

    2023年04月09日
    浏览(36)
  • Java网络编程 - 网络编程介绍 - 网络通信三要素

    什么是网络编程 ? 网络编程可以让程序与网络上的其他设备中的程序进行数据交互。 网络编程基本模式 : 常见的通信模式有如下2种形式:Client-Server( CS: 客户端与服务器模式 ) 、 Browser/Server( BS: 浏览器与服务器模式 ) Client-Server(CS)模式 Browser/Server(BS)模式 实现网络编程关键的三

    2024年02月02日
    浏览(47)
  • 【深入浅出C#】章节 8: 网络编程和远程通信:网络编程和远程通信

    计算机网络是指连接多台计算机设备,通过通信链路共享资源和信息的系统。它构建了一个相互连接的世界,使得人们可以在不同地点进行数据交换和资源共享。网络编程是指在计算机网络中,使用编程语言进行通信和数据传输的技术。现代应用中,网络编程发挥着重要作用

    2024年02月12日
    浏览(49)
  • Java 网络编程 —— 安全网络通信

    SSL(Secure Socket Layer,安全套接字层)是一种保证网络上的两个节点进行安全通信的协议。IETF(Interet Engineering Task Force)国际组织对 SSL 作了标准化,制定了 RFC2246 规范,并将其称为传输层安全(Transport Layer Security,TLS) SSL 和 TLS 都建立在 TCP/IP 的基础上,一些应用层协议,如

    2024年02月11日
    浏览(30)
  • 《3.linux应用编程和网络编程-第8部分-3.8.网络基础》 3.8.1.网络通信概述 3.8.3.网络通信基础知识2

        进程间通信: 管道 、 信号量、 共享内存, 技术多,操作麻烦     线程就是解决 进程间 通信 麻烦的事情,这是线程的 优势 3.8.1.网络通信概述 3.8.1.1、从进程间通信说起: 网络域套接字socket , 网络通信其实就是位于网络中不同主机上面                   的 

    2024年02月15日
    浏览(40)
  • 【网络编程】网络通信基础——简述TCP/IP协议

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 ip地址简单来说就是用来描述网络上一个设备的所在位置。 端

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包