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