天天看点

《Python核心编程(第3版)》——2.7 相关模块

本节书摘来自异步社区《python核心编程(第3版)》一书中的第2章,第2.7节,作者[美] wesley chun(卫斯理 春),孙波翔 李斌 李晗 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

表2-4列出了其他一些与网络和套接字编程有关的python模块。当开发低级套接字程序时,经常配合使用select模块和socket模块。select模块提供了select()函数,该函数管理套接字对象集合。它所做的最有用的一个事情就是接收一套套接字,并监听它们活动的连接。select()函数将会阻塞,直到至少有一个套接字已经为通信做好准备,而当其发生时,它将提供一组准备好读信息的集合(它还可以确定哪些套接字准备好写入,虽然它不像前一种操作那么常见)。

《Python核心编程(第3版)》——2.7 相关模块

在创建服务器方面,async*和socketserver模块都提供更高级的功能。它们以socket和/或select模块为基础编写,能够使客户端/服务器系统开发更加迅速,因为它们已经自动处理了所有的底层代码。你需要做的所有工作就是以自己的方式创建或继承适当的基类。正如前面所提到的,socketserver甚至提供了将线程或新进程集成到服务器的功能,它提供了一个更像并行处理的客户端请求的流程。

现代网络框架遵循众多异步模型(greenlet、generator等)之一来提供高性能异步服务器。这些框架的其中一个目标就是推动异步编程的复杂性,以允许用户以一种更熟悉的同步方式进行编码。

本章介绍的主题主要是在python中利用套接字进行网络编程,以及如何使用低层协议套件(如tcp/ip和udp/ip)创建自定义应用程序。如果你想开发高级web和网络应用程序,我们强烈鼓励你阅读第3章,或者跳到本书第2部分。