----用教授的方式学习
目录
14.3.1 使用 SocketServer 实现分叉和线程化
14.3.2 使用 select 和 poll 实现异步 I/O
网络编程中的一个基本组件是套接字(socket)。套接字基本上是一个信息通道,两端各有一个程序。
套接字分为两类:服务器套接字和客户端套接字。创建服务器套接字后,让它等待连接请求的到来。
使用举例:
最简单的服务器
- import socket
- s = socket.socket()
- host = socket.gethostname()
- port = 1234
- s.bind((host, port))
- s.listen(5)
- while True:
- c, addr = s.accept()
- print('Got connection from', addr)
- c.send('Thank you for connecting')
- c.close()
最简单的客户端
- import socket
- s = socket.socket()
- host = socket.gethostname()
- port = 1234
- s.connect((host, port))
- print(s.recv(1024))
1. 打开远程文件
几乎可以像打开本地文件一样打开远程文件,差别是只能使用读取模式,以及使用模块urllib.request中的函数urlopen,而不是open(或file)。
| >>> from urllib.request import urlopen >>> webpage = urlopen('http://www.python.org') |
2. 获取远程文件
函数urlopen返回一个类似于文件的对象,可从中读取数据。如果要让urllib替你下载文件,并将其副本存储在一个本地文件中,可使用urlretrieve。
| urlretrieve('http://www.python.org', 'C:\\python_webpage.html') |
标准库中一些与网络相关的模块
| 模 块 |
描 述 |
| asynchat |
包含补充asyncore的功能 |
| asyncore |
异步套接字处理程序 |
| cgi |
基本的CGI支持 |
| Cookie |
Cookie对象操作,主要用于服务器 |
| cookielib |
客户端Cookie支持 |
| |
电子邮件(包括MIME)支持 |
| ftplib |
FTP客户端模块 |