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

网友投稿 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小时内删除侵权内容。

上一篇:Jmeter正则表达式提取器实现过程图解
下一篇:浅谈java运用注解实现对类中的方法检测的工具
相关文章

 发表评论

暂时没有评论,来抢沙发吧~