当前位置:

首页 > 系统应用 > 7.6.4 基于UDP协议的Socket通信

7.6.4 基于UDP协议的Socket通信

本节引言: 这一节说到 Socket 的最后一块内容:基于 UDP 协议的 Socket 通信。前面其实已经把 TCP 和 UDP 的差别掰开讲过了,核心区别就落在一点上:数据发送前,客户端和服务端到底要不要先建立连接。学过前两节 TCP 的应该很熟悉那套流程——先启动服务端,调用 accept,等

本文目录

    本节引言:

    这一节说到 Socket 的最后一块内容:基于 UDP 协议的 Socket 通信。前面其实已经把 TCP 和 UDP 的差别掰开讲过了,核心区别就落在一点上:数据发送前,客户端和服务端到底要不要先建立连接。学过前两节 TCP 的应该很熟悉那套流程——先启动服务端,调用 accept,等客户端连进来,拿到对应的客户端 socket 之后,再开始做 IO 操作。UDP 就完全不是这一路子了。它不需要先把连接建起来,而是直接以数据报作为传输载体。也就是说,发送之前,先把要传的数据封装成数据报(Datagram),同时在数据报里写清楚目标 Socket,也就是主机地址和端口号;接着把这份数据报发出去,流程基本就结束了。至于服务端到底有没有收到,发送方本身并不知情,除非服务端收到之后,再回一段确认用的数据报。因为时间关系,这里就不单独补 Android 的例子了,直接看 Ja va 代码。

    7.6.4 基于UDP协议的Socket通信

    1.服务端实现步骤:

    Step 1:创建DatagramSocket,指定端口号
    Step 2:创建DatagramPacket
    Step 3:接收客户端发送的数据信息
    Step 4:读取数据

    示例代码:

    public class UPDServer {
        public static void main(String[] args) throws IOException {
            /*
             * 接收客户端发送的数据
             */
            // 1.创建服务器端DatagramSocket,指定端口
            DatagramSocket socket = new DatagramSocket(12345);
            // 2.创建数据报,用于接收客户端发送的数据
            byte[] data = new byte[1024];// 创建字节数组,指定接收的数据包的大小
            DatagramPacket packet = new DatagramPacket(data, data.length);
            // 3.接收客户端发送的数据
            System.out.println("****服务器端已经启动,等待客户端发送数据");
            socket.receive(packet);// 此方法在接收到数据报之前会一直阻塞
            // 4.读取数据
            String info = new String(data, 0, packet.getLength());
            System.out.println("我是服务器,客户端说:" + info);
    /*
             * 向客户端响应数据
             */
            // 1.定义客户端的地址、端口号、数据
            InetAddress address = packet.getAddress();
            int port = packet.getPort();
            byte[] data2 = "欢迎您!".getBytes();
            // 2.创建数据报,包含响应的数据信息
            DatagramPacket packet2 = new DatagramPacket(data2, data2.length, address, port);
            // 3.响应客户端
            socket.send(packet2);
            // 4.关闭资源
            socket.close();
        }
    }

    2.客户端实现步骤:

    Step 1:定义发送信息
    Step 2:创建DatagramPacket,包含将要发送的信息
    Step 3:创建DatagramSocket
    Step 4:发送数据

    public class UDPClient {
        public static void main(String[] args) throws IOException {
            /*
             * 向服务器端发送数据
             */
            // 1.定义服务器的地址、端口号、数据
            InetAddress address = InetAddress.getByName("localhost");
            int port = 8800;
            byte[] data = "用户名:admin;密码:123".getBytes();
            // 2.创建数据报,包含发送的数据信息
            DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
            // 3.创建DatagramSocket对象
            DatagramSocket socket = new DatagramSocket();
            // 4.向服务器端发送数据报
            socket.send(packet);
    /*
             * 接收服务器端响应的数据
             */
            // 1.创建数据报,用于接收服务器端响应的数据
            byte[] data2 = new byte[1024];
            DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
            // 2.接收服务器响应的数据
            socket.receive(packet2);
            // 3.读取数据
            String reply = new String(data2, 0, packet2.getLength());
            System.out.println("我是客户端,服务器说:" + reply);
            // 4.关闭资源
            socket.close();
        }
    }

    本节小结:

    这一节其实不复杂,核心就几步:先把数据转成字节,再装进DatagramPacket(数据报包)里;发送时,把接收方的 IP 地址和端口号一并带上。到了接收端,则需要准备一个字节数组来做缓存。发送数据前,还得先创建一个DatagramSocket(端到端通信的类)对象,然后通过 send 方法把数据报包发出去。至于示例代码,来源于慕客网上的一个 Ja vaSocket 教程:Ja va Socket应用---通信是这样练成的。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    Yandex引擎入口2026最新登录方式
    Yandex引擎入口2026最新登录方式

    Yandex搜索引擎的官方登录入口是https://www.yondex.net/,该平台支持多语言界面切换、智能语言识别与音译转换,并提供个性化服务及高效检索技术,满足全球用户需求。

    Yandex俄罗斯官网入口及最新搜索地址
    Yandex俄罗斯官网入口及最新搜索地址

    Yandex俄罗斯官网直达入口为https://www.yondex.net/,该平台提供网页搜索、地图导航、新闻聚合、图片视频检索等服务,支持多语言及本地化内容,集成邮箱、云存储、电商比价等生态功能。

    yandex俄语版入口及注册登录方法
    yandex俄语版入口及注册登录方法

    Yandex俄语版搜索入口为https://www.yondex.net/,进入后点击“Войти”注册账号,填写信息并验证手机号即可登录使用邮箱、云盘等服务。

    Yandex浏览器官网入口及使用指南
    Yandex浏览器官网入口及使用指南

    俄罗斯搜索引擎Yandex的官网入口是https://www.yondex.net/,该平台提供多语言搜索、地图、新闻聚合和翻译工具,其浏览器以轻量、快速、广告过滤和高兼容性为优势,搜索支持多类型内容精准查找与安全防护。

    Yandex官网入口及国际版登录指南
    Yandex官网入口及国际版登录指南

    Yandex官方网站快速入口是https://www.yondex.net/,该平台提供多语言搜索引擎、新闻聚合、翻译工具、图片视频检索及个性化推荐等核心服务,并集成地图、云存储、邮箱、日历等实用功能,支持移动端适配与夜间模式,界面简洁且加载迅速。

    Yandex官网入口及最新访问地址
    Yandex官网入口及最新访问地址

    Yandex搜索引擎官方入口是https://www.yondex.net/,该平台具备强大的多语言搜索能力、集成化的服务生态体系以及智能化的搜索体验优化功能。

    Yandex国际版入口及官网链接
    Yandex国际版入口及官网链接

    Yandex国际版官网为https://www.yondex.net/,提供英文界面,适合非俄语用户;2.https://www.yondex.net/为全球短域名,可自动跳转至对应地区版本;3.俄罗斯本地用户使用https://www.yondex.net/,内容以俄语为主,本地化程度高;4.普通用户可根据语言和需求选择相应入口。

    Yandex官网入口及网页版访问教程
    Yandex官网入口及网页版访问教程

    Yandex官方在线入口是https://www.yondex.net/,提供网页搜索、新闻、图片视频检索、地图导航等服务,并集成翻译、邮箱、云存储、日历等工具,支持个性化首页定制与电商比价功能。

    妖精漫画官网登录入口及首页指南
    妖精漫画官网登录入口及首页指南

    妖精漫画官网登录入口为https://www.yaojingmh.com。该平台资源丰富,涵盖多种题材,更新及时,分类清晰,支持多模式阅读与个性化收藏,具备评论、书架、弹幕等互动功能,界面简洁流畅,适配移动端,提供良好阅读体验。

    Yandex官网入口及最新搜索平台访问方式
    Yandex官网入口及最新搜索平台访问方式

    Yandex搜索平台最新访问入口是https://www.yondex.net/,该网站界面简洁,支持多语言切换和智能提示,具备强大的自然语言处理与多样化内容检索功能,并集成翻译、云存储、邮件等附加服务。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。