基于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的聊天程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java聊天程序步骤解析_java网络之基于UDP的聊天程序示例解析相关推荐

  1. java聊天室 博客_java网络聊天室

    功能简述: 1.可以多用户登陆聊天室,用户可以选择私聊或者对所有人聊天.(这里时间关系仅实现群聊,私聊只要将私聊消息和群聊消息封装开来即可实现) 2.有人登陆聊天室时由系统通知所有在线用户,并刷新在线 ...

  2. java seek指针 换行符_Java网络编程探究|乐字节

    大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程. 主要内容如下: 网络 网络分层 IP位置 端口port 网络编程 一. 网络 1.概念 网络即 ...

  3. java 开发文档协作_Java 网络编程---分布式文件协同编辑器设计与实现

    目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...

  4. Java网络编程——基于UDP协议的聊天室

    UDP简述    UDP(User Datagram Protocol)协议是Internet 协议集支持的一个无连接的传输协议,中文名为用户数据报协议.它为应用程序提供了一种无需建立连接就可以发送封 ...

  5. 网络编程(Tcp/Udp实现聊天、文件上传)

    网络编程 1.1 概述 计算机网络是指将位置不同的多台[计算机 通过通信线路连接起来,实现资源共享和信息传递的计算机系统 1.2 网络通信的要素 ip和端口 网络通信协议(tcp/udp) 1.3 I ...

  6. (网络编程)UDP实现聊天

    文章目录 UDP实现聊天 单线程发送接收数据 发送方代码 接收方代码 多线程实现双方互相发送数据 首先编写发送和接收的Runnable实现类 双方线程创建启动 UDP实现聊天 我们知道UDP无需建立连 ...

  7. Linux网络编程 - 基于UDP的服务器端/客户端

    一 理解UDP 1.0 UDP协议简介 UDP(User Datagram Protocol,用户数据报协议) [RFC 768] UDP协议的数据传输单元叫 UDP用户数据报,而TCP协议的数据传输 ...

  8. Java实现网络聊天程序的设计与实现(基于UDP协议)

    目录         TCP/IP协议介绍         Java中socket编程         测试结果 TCP/IP协议介绍         TCP/IP协议包含的范围非常的广,它是一种四层 ...

  9. java udp 同一个端口实现收发_Java网络编程之UDP协议

    伙伴们注意了! 小编在这里给大家送上关注福利: 搜索微信公众号"速学Java"关注即可领取小编精心准备的资料一份! 今天我们来聊聊 网络编程这部分的内容 网络编程 1)计算机网络 ...

最新文章

  1. (DBA之路【五】)关于锁的故事
  2. 人工智能加速期:“算法为王”还是“场景落地”优先 ?
  3. python之time和datetime的常用方法
  4. 访问 IIS 元数据库失败解决问题的方法
  5. python中用turtle绘制时钟_python使用turtle库绘制时钟
  6. Android入门(15)| 网络
  7. 请说明Request和Session的生命周期
  8. CI(持续集成)/CD(持续部署)
  9. ubuntu下谷歌开源的TensorFlow Object Detection API的安装教程
  10. 计算机应用中英文缩写ai表示,2010黑龙江省全国计算机等级考试二级VB笔试试卷及参考答案考试重点和考试技巧...
  11. module_init和module_exit的作用
  12. 人大金仓数据库(kingbase7d)操作入门指南
  13. 图书借阅系统UML建模
  14. excel曲线拟合怎么弄
  15. 函数声明应该写在什么位置?main函数里面还是前面?(都可以,只要在调用语句的前面即可)
  16. 2040: [蓝桥杯2022初赛] 砍竹子(优先队列)
  17. java去处科学技术法,java撤销科学计数法
  18. 网站社交登录之微博登录
  19. 2017年7月工作总结
  20. kafka segment file 解析

热门文章

  1. LeetCode简单题之图像渲染
  2. Clang:LLVM 的 C 语言家族前端
  3. MinkowskiBroadcast广播
  4. Hashing散列注意事项
  5. 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
  6. 人脸照片自动生成游戏角色_ICCV2019论文解析
  7. C++ 虚函数与存虚函数
  8. python的 局部变量与全局变量
  9. shell getopts命令
  10. Android初学第36天