Python技术:socket编程之UDP编程

Python技术:socket编程之UDP编程在互联网行业中,不管是对网络服务器的开发,还是对网络客户端,例如爬虫的开发中,都会涉及到底层的运行原理。

大家好,欢迎来到IT知识分享网。

引言

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方式进行实时数据传输

Python技术:socket编程之UDP编程

UDP服务器编程

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

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

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

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

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

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

Python技术:socket编程之UDP编程

UDP客户端

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

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

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

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

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

Python技术:socket编程之UDP编程

Python技术:socket编程之UDP编程

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/47430.html

(0)
上一篇 2024-04-22 18:26
下一篇 2024-04-23 12:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信