介绍:
面向无连接的用户数据报协议,不需要建立任何连接,目的主机接收后不需要确认
UDP特点:
- 相比TCP速度快一些
- 简单的应用程序直接使用 不需要加密
- 对于海量数据不采用UDP
- 广播和多播必须采用UDP
UDP应用:
DNS解析 NFS网络文件系统 RTP流媒体,以及一般语音和视频都是用UDP
UDP网络编程流程:
服务器: 创建套接字 socket( )
将服务器的ip地址、端口号与套接字进行绑定 bind( )
接收数据 recvfrom()
发送数据 sendto()
客户端: 创建套接字 socket()
发送数据 sendto()
接收数据 recvfrom()
关闭套接字 close()
UDP 编程 C/S架构:
简单的说一下: 服务器创建Socket() 也就是创建文件描述符
服务器绑定Bind() 函数 这里的绑定不是绑定客户端的信息(IP和Port) 这里是绑定主机的IP 和端口,因为创建文件描述符 就是为了 连接本机进程,接入, 不要绑定错了。
接收数据 recvfrom() 等待客户端连接 这里存在一个文件描述符,一直阻塞 知道检测缓冲区中有描述符 才解除阻塞。
还有就是 客户端不关闭socket 一直等待客户端断开连接 则就继续处于 recvfrom()阻塞状态
实质上 在连接过程存在连个缓冲区 一个读缓冲区,一个写缓冲区 就是不停的检测缓冲区内容
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)