这篇文章主要讲解了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的聊天程序的实现有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。