hdml指的是什么接口
302
2022-11-28
java网络之基于UDP的聊天程序示例解析
基于UDP的SocketPnRgdPXg通信
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 PnRgdPXglen = packet.getLength();
//将字节数组转换为字符串
String s = new String(b, 0, len);
System.out.println("收到的消息:"+s);
如要进行循环接收,则将第4、第5步进行无限循环。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~