千家信息网

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

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,小编给大家分享一下java如何实现基于UDP协议的聊天小程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!UDP(User
千家信息网最后更新 2025年01月21日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安全错误 数据库的锁怎样保障安全 企业kms服务器 资助信息网络安全管理制度 湖南制造执行系统软件开发 服务器wan端口需要接线吗 北京java软件开发哪家快 浸没式液冷服务器股票 初步理解互联网科技 数据库的更新方式 学生公寓网络技术 ERP数据库备份需要多久 手游软件开发需要哪些岗位 筑业资料数据库怎么打开 监控存储服务器 联想服务器四个网卡是互通的吗 网络技术常使用的交换技术有哪些 想在公安搞网络安全 宝山区现代化软件开发注意事项 mt4添加模拟服务器 广播剧s-w极光虚拟服务器 新神魔大陆服务器寻宝地宫在哪里 有没有菌种解释的数据库 网络安全伴我行二年级手抄报 爬梯子软件开发 西安小江互联网科技有限公司 金联互联网科技有限公司 如何管理服务器上的代码 计算机网络技术就业的环境 连续到任意官方服务器 女生学网络安全好还是设计好 网络安全小报内容资料
0