Linux网络编程--(4)UDP编程
来源:互联网 发布:巨库软件 编辑:程序博客网 时间:2024/05/22 14:08
一、UDP协议的概念
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个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
二、UDP协议的特点
用户数据协议,是一种不可靠的无连接协议,在发送数据前不需要进行bind 所以可以进行高效率的数据传输
适用于尺寸小数据(如DNS服务器进行IP查询)
使用于广播和组播中
即时通信软件的点对点文本通信以及视频通信
流媒体,VOD、等网络多媒体服务中。
三编程函数
socket();
bind();
close();
特殊函数:
ssize_t sendto(int socket, void *message, size_t length, int flags, struct sockaddr *dest_addr, socklen_t dest_len);
参数
int socket
void *message 发送数据内存
size_t length 数据长度
int flags
struct sockaddr *dest_addr 对方的ip+port
socklen_t dest_len
返回值
实际发送字节个数ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len);
四、UDP传输模型
阅读全文
0 0
- Linux网络编程--(4)UDP编程
- Linux--网络编程(二)UDP编程
- LINUX UDP网络编程
- Linux网络编程-UDP
- Linux UDP网络编程
- linux UDP网络编程
- Linux网络编程-UDP
- Linux网络编程-UDP
- 【Linux网络编程】UDP编程
- 网络编程(4)--UDP
- Linux网络编程 - UDP网络编程应用
- Linux网络编程(TCP和UDP)
- linux网络编程之socket(UDP)
- 网络编程(UDP)
- linux 网络编程 udp篇
- linux之UDP网络编程
- Linux 网络编程之UDP
- Linux网络编程之UDP
- hive内部表,外部表区别
- iframe cordova把网页打包成ios时,iframe内嵌网页不显示的解决办法
- java cms系统 springmvc mybatis
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- js之作用域
- Linux网络编程--(4)UDP编程
- 阿里云ECS的Windows服务器下Tomcat实现https
- 百度网盘真实下载地址
- Java多线程编程核心技术-笔记-第一章
- Linux入门
- 余承东吐槽iPhone X长的丑体验差;雷军称小米明年要进世界500强;特斯拉股价被指太荒唐丨价值早报
- 程序员幽默:66条让你笑爆肚皮的程序员段子
- 创投日报:11月3日至5日收录投融资项目13起
- Android编程权威指南第三版挑战练习一