基于UDP的Socket通信
UDP协议不是一种基于稳定连接的协议,是一种面向数据报包的通信协议,不需要通信双方建立稳定的连接,也没有所谓服务端和客户的概念,数据报包在传输的时候不保证一定及时到达,也不能保证数据报包的到达顺序,但是UDP协议传输效率要远高于TCP/IP。
以下是一个基于UDP的简单的消息发送接收程序。
消息发送方
1.创建一个数据报的网络通道
?
1
|
DatagramSocket ds = new DatagramSocket();
|
2.准备需要传输的数据
?
1
|
String msg = "天王盖地虎,小鸡炖蘑菇!!!" ;
|
3.将需要发送的数据打包成数据报包
?
1
2
3
4
5
6
|
DatagramPacket packet = new DatagramPacket(
msg.getBytes(), //需要被发送的数据的字节数组
msg.getBytes().length, //发送的数据长度(字节数组长度)
InetAddress.getByName( "localhost" ), //接收方的ip
1025 //接收方的端口
);
|
4.发送数据报包
?
1
|
ds.send(packet);
|
5.关闭通道
?
1
|
ds.close();
|
消息接收方
1.创建一个数据报的网络通道,绑定到指定端口
?
1
|
DatagramSocket ds = new DatagramSocket(1025);
|
2.声明字节数组,用于存储接收的数据
?
1
|
byte [] b = new byte [ 1024 ];
|
3.准备数据报包(空包)
?
1
|
DatagramPacket packet = new DatagramPacket(b, b.length);
|
4.接收数据到数据报包中
?
1
|
ds.receive(packet);
|
5.将数据解析为字符串并输出
?
1
2
3
4
5
|
//接受到的数据(字节数组)实际长度
int len = packet.getLength();
//将字节数组转换为字符串
String s = new String(b, 0 , len);
System.out.println( "收到的消息:" +s);
|
如要进行循环接收,则将第4、第5步进行无限循环。
到此这篇关于java网络之基于UDP的聊天程序示例解析的文章就介绍到这了,更多相关java基于UDP的聊天程序内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/weixin_45877744/article/details/107743365
相关文章
猜你喜欢
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 49
-
2025-05-25 31
-
详解Spring Cloud Stream使用延迟消息实现定时任务(RabbitMQ)
2025-05-29 43 -
使用自助建站微信小程序时,怎样选择合适的模板以匹配品牌形象?
2025-06-04 78 -
2025-05-29 88
热门评论