java网络之基于UDP的聊天程序示例解析
程序员文章站
2022-03-07 18:05:07
基于udp的socket通信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的聊天程序内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序:QQ聊天界面的搭建
-
基于TCP/UDP的网络聊天程序
-
荐 Java基于UDP的GUI界面简易聊天室课程实验(获取本机IP、IDEA同个程序运行两次设置方法)
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序(三):回车实现数据到发送(详细代码完结)
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序(二):Tcp通信的过程及代码编写
-
使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序:QQ聊天界面的搭建
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序(二):Tcp通信的过程及代码编写
-
基于Java的Socket类Tcp网络编程实现实时聊天互动程序(三):回车实现数据到发送(详细代码完结)