安基网 首页 编程 软件学院 查看内容

Python技术:socket编程之UDP编程

2018-10-25 00:52| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 引言python作为一门胶水语言,可以在各个领域上作为快速开发的工具,大大提高开发者处理事务的效率。在互联网行业中,不管是对网络服务器的开发,还是对网络客户端,例如爬虫的开发中,都会涉及到底层的运行原理,那 ...

引言

python作为一门胶水语言,可以在各个领域上作为快速开发的工具,大大提高开发者处理事务的效率。在互联网行业中,不管是对网络服务器的开发,还是对网络客户端,例如爬虫的开发中,都会涉及到底层的运行原理,那就是socket编程,那么今天,我们将对python下的socket编程开发中的UDP协议编程过程做一个介绍,通过本篇文章,可以让大家对网络编程中底层的UDP协议有一定的认识。

什么是UDP协议

UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据包发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

UDP是一种面向无连接的协议,每个数据包都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

UDP是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,UDP一般用于多点通信和实时的数据业务,比如:

  • 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
  • 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
  • 适合于广播/组播式通信中。
  • MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议

流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

UDP服务器编程

在python中,提供了一个socket模块,他里面封装了系统底层socket接口的python格式API,对于python开发者来说,只需要导入该模块就可以实现socket编程了。

根据C/S模型的要求,首先应该先有一个服务器,等待客户端的请求,然后再根据请求内容给予服务,那么UDP的服务器的设计流程就是:

1. 申请对象:从内核中申请一个具有UDP特性的socket对象;

2. 配置结构:用元组结构来表示服务器要监听的端口和IP地址;

3. 绑定结构:使用bind系统调用,向内核告知开放哪个端口和哪些IP地址;

4. 等待数据:使用recvfrom来接收数据,若没有收到数据,阻塞等待;

UDP客户端

有了服务器后,只需要设计一个客户端,向服务器发起请求,就完成了C/S的模型了。

那么UDP的客户端设计流程是:

1. 申请对象:从内核中申请一个具有UDP特性的socket对象;

2. 配置目标:作为客户端,需要知道服务器的身份信息,才可能向指定的地方发送数据;

3. 发送数据:使用sendto向目标地址发送数据;


Tag标签:

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6615738196959429128/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部