㈠ C# udp是什么意思啊,是干什么的啊
最普遍的介绍:
UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP是与TCP相对应的协议,它是面向非连接的协议,它不与对方连接,而直接把数据包发送过去。“面向非连接”就是正式通信前不必与对方建立连接,不管对方状态就直接发送。
特点是什么:
(1)UDP是一个无连接协议,传输数据之前,源端和终端不建立连接,当它想传送时就简单的抓取来自应用程序的数据,并尽可能快的把他扔到网络上。在发送端UDP传送的速度仅仅是受应用程序数据生成的速度、计算机能力和传输带宽限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段。
(2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多台客户机传输相同的信息。
(3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输宽带、源端和终端主机性能的限制。
(5)UDP使用尽量最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(该表中有许多参数)。
(6)UDP是面向报文的。发送方对应用程序交下来的报文,在添加首部后就向下交付个IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
举例说明应用场景:
一般用于实时视频通讯,例如QQ
实时音视频是可以而且应该用 UDP 的,一方面因为它常常涉及到网络穿透,另外一方面它不需要重传。——我需要实时的看到你的图像跟声音,至于中间丢一帧什么的完全不重要。而为了重传往往会造成延迟与不同步,考虑一下,某一帧因为重传,导致0.5秒以后才到,那么整个音视频就延迟了0.5秒。
考虑一下接收方看视频,如果使用 TCP 导致视频的中间延迟了0.5秒,只要我不按“快进”键,那么后续的视频全都会比发送方延迟0.5秒。这种延迟是累加的,随着持续丢帧,延迟会越来越大,达到数秒,甚至分钟级,这会严重影响实时音视频的用户体验。
因此“实时音视频聊天”功能通常都会使用 UDP 实现。
其它含义:
注:UDP比TCP更容易穿越路由器防火墙。
注:在互联网技术中,UDP常用在缓存读取,保存;用在监控或终端上报。
注:在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和QQ就是使用的UDP协议。
㈡ C#用UdpClient+线程接收客户端传来的图像时为什么越来越慢呢
1.服务器
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){Server(10086); //监听10086端口}/// <summary>/// 服务器端/// </summary>/// <param name="port"></param>static void Server(int port){try{UdpClient udpclient = new UdpClient(port);while (true){IPEndPoint ipendpoint = null;byte[] bytes = udpclient.Receive(ref ipendpoint); //停在这等待数据string data = Encoding.Default.GetString(bytes, 0, bytes.Length);Console.WriteLine("{0:HH:mm:ss}->接收数据(from {1}:{2}):{3}", DateTime.Now, ipendpoint.Address, ipendpoint.Port, data);}udpclient.Close();}catch (Exception ex){Console.WriteLine("{0:HH:mm:ss}->{1}", DateTime.Now, ex.Message);}Console.ReadKey();}}}
2.客户端
using System;using System.Net;using System.Net.Sockets;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){Client("127.0.0.1", 10086, "play"); //发送数据}/// <summary>/// 客户端/// </summary>/// <param name="ip"></param>/// <param name="port"></param>/// <param name="message"></param>static void Client(string ip, int port, string message){try{UdpClient udpclient = new UdpClient();IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Parse(ip), port);byte[] data = Encoding.Default.GetBytes(message);udpclient.Send(data, data.Length, ipendpoint);udpclient.Close();Console.WriteLine("{0:HH:mm:ss}->发送数据(to {1}):{2}", DateTime.Now, ip, message);}catch (Exception ex){Console.WriteLine("{0:HH:mm:ss}->{1}", DateTime.Now, ex.Message);}Console.ReadKey();}}}
3. 字符串转16进制,然后直接发送16进制。public static byte[] HexStringToByteArray(string s){if (s.Length = 0)throw new Exception("将16进制字符串转换成字节数组时出错,错误信息:被转换的字符串长度为0。");s = s.Replace(" ", "");byte[] buffer = new byte[s.Length / 2];for (int i = 0; i < s.Length; i += 2)buffer[i / 2] = Convert.ToByte(s.Substring(i, 2), 16);return buffer;}
4.16进制转字符串,接收端用于识别显示
/// <summary>/// 字节数组转换成十六进制字符串(不带空格)/// </summary>/// <param name="data">要转换的字节数组</param>/// <returns>转换后的字符串</returns>public static string ByteArrayToHexStringNoBlank(byte[] data){StringBuilder sb = new StringBuilder(data.Length * 3);foreach (byte b in data)sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));return sb.ToString().ToUpper();}
㈢ 前端项目中如何使用udp协议和后端交互
先使用后端交互,UDP协议一般指UDP。 Internet 协议集支持一个无连接的传输协议,后端交互,支持发送各种HTTP请求及任何形式展示响应。
㈣ TCP与UDP应用的例子有哪些
1、TCP应用
(1)FTP:文件传输协议;
(2)SSH:安全登录、文件传送(SCP)和端口重定向;
(3)Telnet:不安全的文本传送;
(4)SMTP:简单邮件传输协议Simple Mail Transfer Protocol (E-mail);
(5)HTTP:超文本传送协议 (WWW);
2、UDP应用
(1)流媒体
采用TCP,一旦发生丢包,TCP会将后续包缓存起来,等前面的包重传并接收到后再继续发送,延迟会越来越大。基于UDP的协议如WebRTC是极佳的选择。
(2)实时游戏
对实时要求较为严格的情况下,采用自定义的可靠UDP协议,比如Enet、RakNet(用户有sony online game、minecraft)等,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。
采用UDP的经典游戏如FPS游戏Quake、CS,着名的游戏引擎Unity3D采用的也是RakNet。
(3)物联网
2014年google旗下的Nest建立Thread Group,推出了物联网通信协议Thread,完善物联网通信。
全球将近50%的人都在使用互联网,人们不断的追求更快、更好的服务,一切都在变化,在越来越多的领域,UDP将会抢占TCP的主导地位。
(4)QQ 文件传输、QQ语音、QQ视频
对于网络通讯质量要求不高的情况下,要求网络通讯速度能尽量快捷方便,就可以使用UDP技术。
㈤ uartdisplay接收数据不显示图像
说明你接受到的数据没有显示出来
你可能设置成的是字符显示模式,改成16进制模式试试,应该就可以显示数据了
网络串口调试助手软件特点: 1. 支持TCP、UDP、串口 2. 支持地址的域名解析 3. 支持同一个类型下创建多个连接 4. 周期发送、十六进制显示、自动换行、文件输入、文件输出 5. 窗口集成分离等,分离后可调大小 6. 底层采用livevent开发,通讯稳定可靠
㈥ MATLAB 图像怎么用 UDP协议进行传输
给出一个matlab用UDP协议的例子:
echoudp('on',4012)
u = udp('127.0.0.1',4012);
Connect the UDP object to the host.
fopen(u)
Write to the host and read from the host.
fwrite(u,65:74) %一般图像是一个二维或三维矩阵,把这里改成你的数据即可
A = fread(u,10);
Stop the echo server and disconnect the UDP object from the host.
echoudp('off')
fclose(u)
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP协议全称是用户数据报协议[1] ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
㈦ 运城广电IP前端传输协议是TCP还是UDP
UDP协议。运城广电IP前端传输UDP协议对应的有:
1、DNS:用于域名解析服务,将域名地址转换为IP地址,使用53号端口。
2、SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备。由于网络设备过多,无连接的服务就体现出优势。
3、TFTP:简单文件传输协议,该协议在端口69号使用UDP服务。
㈧ 什么是UDP啊
UDP协议的全称是用户数据包协议,在网络中它与TCP协议一样用于处理
UDP数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。
UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
㈨ TCPDUMP抓包的数据怎么样才能还原成声音或者是图像 各位大虾拜托了
这个就涉及到信源编码的范畴了。。如果是比较简单的协议比如RTP,那就很简单:UDP头后面的12字节以后的数据除了校验就是话音包。当然是在你分用户以后,才能还原出真正的话音,否则就是杂音。还有个前提,你对分出来的数据是什么格式的还要清楚,如果是话音,是723,729还是简单的A/U律都要很清楚,要不你凭什么解码?视频就更是如此了,所以有坚实的信源分析基础也是必要的。。
㈩ UDP、TCP 协议的区别
一、TCP协议
TCP位于传输层, 提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service) 是指, 为了方便传输, 将大块数据分割成以报文段(segment) 为单位的数据包进行管理。 而可靠的传输服务是指, 能够把数据准确可靠地传给对方。 即TCP 协议为了更容易传送大数据才把数据分割, 而且 TCP 协议能够确认数据最终是否送达到对方。所以,TCP连接相当于两根管道(一个用于服务器到客户端,一个用于客户端到服务器),管道里面数据传输是通过字节码传输,传输是有序的,每个字节都是一个一个来传输。
(1)、三次握手:握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。
第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,完成三次握手。
此外,还有快速重传和快速恢复,停止-等待协议,回退N帧协议,选择重传协议等。
二、UDP协议:
无连接协议,也称透明协议,也位于传输层。
三、两者区别:
1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
2) TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
3) TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。
四、长连接和短连接
HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。
在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。
而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:
Connection:keep-alive
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。