
Python 高级
文章平均质量分 82
前端小白龙
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python 之 协程
1.用作协程的生成器的基本行为 def simple_coroutine():#协程使用生成器函数定义:定义体中有yield关键字 print('-> coroutine started') x = yield #yield在表达式中使用,如果协程只从客户那里接收数据,那么产出的值是None--这个值是隐式的,因为yield关键字后面没有表达式 print('-&...原创 2018-11-27 20:46:05 · 183 阅读 · 0 评论 -
Python之使用期物处理并发
期物指一种对象,表示异步执行的结果。 17.1 示例:网络下载的三种风格 为了高效处理网络I/O,需要使用并发,因为网络有很高的延迟,所以为了不浪费CPU周期去等待,最好在收到网络响应之前做些其他的事。 用三个程序说明这一点: flags.py:下载完一个图像,并将其保存在硬盘中之后,才请求下一个图像。 flags_threadpool.py:使用concurrent.futures模块...原创 2018-12-06 14:48:10 · 195 阅读 · 0 评论 -
Python网络编程之网络客户端
如果Python中没有一个可以实现您想要的协议的模块,或者您想修改或扩展一个已经存在的Python模块的时候,本章的知识是非常有用的。 2.1 理解socket socket是曹卓系统中I/O系统的延伸部分,它使进程和机器之间的通信成为可能。 一个socket允许您使用标准的操作系统和其他的计算机,以及您自己的机器上的不同进程来通信。 2.2 建立socket 对于一个客户端来说,建立一...原创 2018-12-15 22:02:27 · 245 阅读 · 0 评论 -
Python网络编程之高级网络操作
1. 半开放socket socket是双向的-----socket的两端都可以进行读或写。有的时候我们需要仅仅在一个方向上传输数据,这时候就用到了半开放socket。半开放socket可以用于以下情况: 确保所有的数据都已经被传输完毕。 捕获潜在的程序错误,这些错误是由于读了不能读的socket,或者写了不能写的socket。 您的程序使用了fork()或多线程,而您想防止其他进程或线程...原创 2018-12-26 19:09:48 · 200 阅读 · 0 评论 -
Python网络编程之网络服务器
3.1 准备连接 对于一个客户端来说,建立一个TCP连接的过程分两步,包括建立socket对象以及调用connect()来建立一个和服务器的连接。 对于服务器,需要以下4步: 建立socket对象 设置socket选项(可选) 绑定到一个端口(同样,也可以是一个指定的网卡) 侦听连接 这里有个代码的片段可以实现这些功能: host = '' #Bind to all interfa...原创 2018-12-17 21:01:54 · 379 阅读 · 0 评论 -
Python 网络编程简介
1.1 在用Python进行网络编程的时候,你会发现大致有两种情况:一是某些协议已经有了Python模块,二是需要自己编写实现协议。即使是已经实现的模块,理解其底层是如何实现的也很有益处。 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # Simple Gopher Clinet - Chapter 1 - gopherclient.py i...原创 2018-12-11 20:49:58 · 232 阅读 · 0 评论 -
Python网络编程之域名系统
域名系统(DNS)是一个分布式的数据库,它主要用来把主机名转换成IP地址。 DNS系统之所以存在主要是因为方便用户记忆和更改IP地址不影响域名。 4.1 进行DNS查询 DNS提供一系列的提名回答,每个提名给出一个更详细的答案,直到获得最终答案。 作为一个例子,让我们来看一下查询www.external.example.com。首先,您的程序会和操作系统配置文件指定的本地名称服务器通信。这...原创 2018-12-18 19:59:13 · 381 阅读 · 0 评论