Python 学习 第二册 第14章 网络编程

----用教授的方式学习

目录

14.1 几个网络模块

14.1.1 模块 socket

14.1.2 模块 urllib 和 urllib2

14.1.3 其他模块

14.2 SocketServer 及相关的类

14.3.1 使用 SocketServer 实现分叉和线程化

14.3.2 使用 select 和 poll 实现异步 I/O 

14.4 Twisted 

14.4.1 下载并安装 Twisted 

14.4.2 编写 Twisted 服务器


14.1 几个网络模块

14.1.1 模块 socket

网络编程中的一个基本组件是套接字(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))

14.1.2 模块 urllib 和 urllib2

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')

14.1.3 其他模块

标准库中一些与网络相关的模块

模 块 

描 述

asynchat 

包含补充asyncore的功能

asyncore 

异步套接字处理程序

cgi 

基本的CGI支持

Cookie 

Cookie对象操作,主要用于服务器

cookielib 

客户端Cookie支持

email 

电子邮件(包括MIME)支持

ftplib 

FTP客户端模块

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 21:40:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 21:40:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 21:40:05       82 阅读
  4. Python语言-面向对象

    2024-06-17 21:40:05       91 阅读

热门阅读

  1. c++深拷贝、浅拷贝

    2024-06-17 21:40:05       33 阅读
  2. 视图和子查询

    2024-06-17 21:40:05       33 阅读
  3. 47-5 内网渗透 - 提权环境搭建

    2024-06-17 21:40:05       31 阅读
  4. 一千题,No.0077(计算谱半径)

    2024-06-17 21:40:05       36 阅读
  5. 因果卷积和递归神经网络

    2024-06-17 21:40:05       33 阅读