关于UDP协议
UDP协议的特点。
1.UDP是一个无连接协议,传输数据之前接收端和发送端之间不建立连接。
想传输数据的时候就抓取数据扔出去,不监控是否被正确和全面的接受到。
2.因为不需要建立连接,也就不需要维护连接状态,会因此一台发送机器可以向多台接收机器传输相同的信息,只需要管理IP和接口。
3.UDP具有较好的实时性,效率高。原因在于UDP在传输数据的时候不建立逻辑连接,也不想TCP那样对数据进行检查。
UDP的使用场景
网络游戏,视频聊天和语音聊天类对实时性要求比较强的应用软件。
例如:在聊天的过程中如果出现丢包现象的话,充其量觉得有些卡顿,一般情况下要求对方从复一遍既可,不影响聊天的整体效果。
并且网络状况较好的时候,这种情况很少发生。
public class Client_Udp {
public static void main(String[] args) throws Exception {
System.out.println("数据准备发送中");
//1、使用DatagramScoket 指定端口 创建发送端
DatagramSocket dgs =new DatagramSocket(8888);
//2、准备数据一定转成字节数组
String data="数据传输成功";
byte[] datas=data.getBytes();
//3、封装成DatagraPacket包裹,需要指定目的地
DatagramPacket dgp =new DatagramPacket(datas, 0, datas.length, new InetSocketAddress("localhost",9999));
//4、发送包裹Send()
dgs.send(dgp);
dgs.close();
}
public class Server_Udp {
public static void main(String[] args) throws Exception {
System.out.println("数据接收中!");
//1.使用DatagramSocket创建端口,指定接收端。
DatagramSocket dgs=new DatagramSocket(9999);
//2.准备容器封装成DatagramPacket包裹
byte[] container =new byte[1024*60];
DatagramPacket dgp =new DatagramPacket(container, 0,container.length);
//3.阻塞式接受包裹receive
dgs.receive(dgp);
//4.分析数据
byte[] data=dgp.getData();
String st=new String(data,0,data.length);
System.out.println(st);
dgs.close();
关于UDP协议的更多相关文章
- TODO:Golang语言TCP/UDP协议重用地址端口
TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...
- 闲来无事,写个基于UDP协议的Socket通讯Demo
项目一期已经做完,二期需求还没定稿,所以最近比较闲. 上一篇写的是TCP协议,今天写一下UDP协议.TCP是有连接协议,所以发送和接收消息前客户端和服务端需要建立连接:UDP是无连接协议,所以发送消息 ...
- UDP协议开发
UDP是用户数据报协议(User Datagram Protocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务.与TCP协议不同,UDP协议直接利用I ...
- 基于UDP协议模拟的一个TCP协议传输系统
TCP协议以可靠性出名,这其中包括三次握手建立连接,流控制和拥塞控制等技术.详细介绍如下: 1. TCP协议将需要发送的数据分割成数据块.数据块大小是通过MSS(maximum segment siz ...
- TCP协议与UDP协议的区别
TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...
- 采用UDP协议的PIC32MZ ethernet bootloader
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 经过千辛万苦,今天终于 ...
- 采用UDP协议实现PIC18F97J60 ethernet bootloader
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). TCP/IP Stac ...
- 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...
- Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340 更多请查看专栏,地 ...
- Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512 更多请看专栏, ...
随机推荐
- html两大布局
html布局之圣杯布局 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 【redis】设置密码
1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有开启redis则需要先开启:[root@iZ94jz ...
- MacOS更改启动台(launchpad)图标大小
原文链接:https://www.jianshu.com/p/18224d191bd2作者:麦壳君 小麦有点强迫症,觉得 Mac 启动台(Launchpad)里面系统默认的应用程序图标太大,所以想让它 ...
- 原生js给同一对象绑定多个事件
事件监听 var son = document.querySelector(".son"); son.addEventListener('click', once1); funct ...
- centos7 中没有service iptables save指令来保存防火墙规则
解决方法: systemctl stop firewalld 关闭防火墙yum install iptables-services 安装 iptables 服务systemctl enable ip ...
- 关于qt creator各种假死的问题
来自CSDN网友( qq191329827)内容,亲自尝试,且经历一致: 我有两个笔记本,1个台式机,都装了qt, 然后,我的thinkpad x1c,装上之后creator各种假死,网上看了好多解决 ...
- vue添加背景音乐
vue添加背景音乐需要用到HTML中的标签 参考手册:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp *在iOS端autopl ...
- MySQL重要知识点
可能是全网最好的MySQL重要知识点 | mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后不会有这个 ...
- Nginx 整合 Lua 实现动态生成缩略图
原文地址:Nginx 整合 Lua 实现动态生成缩略图 博客地址:http://www.extlight.com 一.前提 最近在开发一个项目,涉及到缩略图的功能,常见的生成缩略图的方案有以下几个: ...
- 【06月04日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年06月04日 之间,滚动市盈率历史新低排名. 上市三年以上的公司,2019年06月04日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历史 ...