千家信息网

java如何实现基于UDP协议的聊天小程序

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下java如何实现基于UDP协议的聊天小程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!UDP(User
千家信息网最后更新 2026年11月03日java如何实现基于UDP协议的聊天小程序

小编给大家分享一下java如何实现基于UDP协议的聊天小程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。正因为UDP协议没有连接的过程,所以它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。

利用UDP协议的发送和接收,模拟聊天小程序

创建聊天程序的A端:

1、发送信息到接收端
1 、准备发送的信息【键盘录入】
2 、指定接受端的 ip
3 、指定接收端的端口
4 、打包【创建 DatagramPacket 的对象】
5 、发送【创建 DatagramSocket 的对象】
2、接收接收回复的信息
1 、准备接收使用字节数组
2 、把数组封装为数据报包【创建 DatagramPacket 的对象】
3 、接收数据
4 、解析报包有效数据
3 、上述操作循环操作

创建聊天程序的B端:

1、接收发送端的信息
1 、准备接收使用字节数组
2 、把数组封装为数据报包【创建 DatagramPacket 的对象】
3 、接收数据【创建 DatagramSocket 的对象】
4 、解析报包有效数据
2、回复发送端的信息
1 、准备发送的信息【键盘录入】
2 、指定发送的 ip 【解析接收的报包的 ip 即可】
3 、指定接收端的端口【解析接收的报包的端口即可】
4 、打包【创建 DatagramPacket 的对象】
5 、发送
3、上述操作循环操作

端口一:

package com.offcn.second; import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.util.Scanner; public class MyQQ {    public static void main(String[] args) throws Exception{        DatagramSocket ds = new DatagramSocket();        Scanner sc= new Scanner(System.in);        while(true){            //发送消息            System.out.print("My:");            //输入发送信息            String smsg = sc.nextLine();            //byte[] sbs = smsg.getBytes();            //int slen = sbs.length;            //创建数据包            DatagramPacket sdp = new DatagramPacket(smsg.getBytes(),//数据转为byte数组                    smsg.getBytes().length,//数据长度                    InetAddress.getLocalHost(),//接收端端口号                    9999);//接收端,端口号            //发送            ds.send(sdp);            //接收消息            //创建接收数据的数据包            DatagramPacket rdp = new DatagramPacket(new byte[1024],1024);            //接收数据            ds.receive(rdp);            //将接收的数据转为字符串            String rmsg = new String(rdp.getData(),0,rdp.getLength());            //打印输出            System.out.println("His:"+rmsg);           }    }}

端口二:

package com.offcn.second; import java.net.DatagramPacket;import java.net.DatagramSocket;import java.util.Scanner; public class HisQQ {    public static void main(String[] args) throws Exception{        DatagramSocket ds = new DatagramSocket(9999);        Scanner sc = new Scanner(System.in);        while(true){            //创建接收数据的数据包            DatagramPacket rdp = new DatagramPacket(new byte[1024],1024);            ds.receive(rdp);            //将接收的数据转换为字符串            String rmsg = new String(rdp.getData(),0,rdp.getLength());            //输出接收到的信息            System.out.println("His:"+rmsg);              //给对方回消息            //输入发送的数据            System.out.print("My:");            String smsg = sc.nextLine();            //创建发送数据的数据包            DatagramPacket sdp = new DatagramPacket(smsg.getBytes(),                    smsg.getBytes().length,                    rdp.getAddress(),                    rdp.getPort());            ds.send(sdp);        }    }}

运行结果:

以上是"java如何实现基于UDP协议的聊天小程序"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 信息 对象 程序 数组 消息 端口 端的 准备 篇文章 有效 内容 口号 可靠性 字符 字符串 字节 对方 键盘 封装 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 互联网是不是新科技 互联网科技公司税收优惠 重庆互联网络科技 互联网科技的英文 菲比寻常互联网科技 华中科技有哪些互联网大佬 湖南洣水互联网科技有限公司扣款 北京三清互联网科技 小米互联网科技园设置 常德市电业局互联网科技部 全球顶尖互联网科技公司 威龙国际互联网科技公司 长沙茂晟互联网科技有限公司 广州富喜互联网络科技 求路客互联网科技电话 米泉互联网科技专业怎么样 互联网科技大佬云集 上海互联网科技园景观 广东猫王互联网科技有限公司电话 互联网高科技 互联网科技股 深圳九邦互联网科技有限公司 亿策互联网科技 互联网 视角下的科技创新 一五八零互联网科技 滨湖区互联网智能科技产品供应 互联网之后的科技是什么 互联网科技实习生岗位职责 开一家科技互联网公司需要多少钱
0