栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java网络之基于UDP的聊天程序示例解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java网络之基于UDP的聊天程序示例解析

基于UDP的Socket通信

UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也不能保证数据报包的到达顺序,但是UDP协议传输效率要远高于TCP/IP。

以下是一个基于UDP的简单的消息发送接收程序。

消息发送方

1.创建一个数据报的网络通道

 DatagramSocket ds = new DatagramSocket();

2.准备需要传输的数据

String msg = "天王盖地虎,小鸡炖蘑菇!!!";

3.将需要发送的数据打包成数据报包

DatagramPacket packet = new DatagramPacket(
      msg.getBytes(), 		//需要被发送的数据的字节数组
      msg.getBytes().length, 	//发送的数据长度(字节数组长度)
      InetAddress.getByName("localhost"), //接收方的ip
      1025	//接收方的端口				
    );

4.发送数据报包

 ds.send(packet);

5.关闭通道

ds.close();

消息接收方

1.创建一个数据报的网络通道,绑定到指定端口

DatagramSocket ds = new DatagramSocket(1025);

2.声明字节数组,用于存储接收的数据

byte[] b = new byte[1024];

3.准备数据报包(空包)

DatagramPacket packet = new DatagramPacket(b, b.length);

4.接收数据到数据报包中

ds.receive(packet);

5.将数据解析为字符串并输出

//接受到的数据(字节数组)实际长度
int len = packet.getLength();
//将字节数组转换为字符串
String s = new String(b, 0, len);
System.out.println("收到的消息:"+s);

如要进行循环接收,则将第4、第5步进行无限循环。

到此这篇关于java网络之基于UDP的聊天程序示例解析的文章就介绍到这了,更多相关java基于UDP的聊天程序内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/132818.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号