第10章 网络基础——套接字编程
本章我们将学习套接字(socket)和3种Internet模块:http
、ftplib
和urllib
,还将了解Python中用于网络的socket
模块。其中,http是处理超文本传输协议(HTTP)的程序包,ftplib
模块用于执行与FTP相关的自动化工作,urllib
是处理与URL相关的工作的程序包。
本章将介绍以下主题。
- 套接字。
http
程序包。ftplib
模块。urllib
程序包。
10.1 套接字
本节我们学习网络套接字,这里使用Python的socket模块。套接字是通信的接口,包括本地通信和互联网通信。socket模块有一个socket类,用于处理数据通道,它还包含一些处理网络相关任务的函数。我们要使用socket模块的函数,首先需要导入socket模块。
我们来看如何创建套接字。socket类有一个socket函数,它有两个参数:address_family
和socket type
。
语法如下所示。
import socket
s = socket.socket(address_family, socket type)
address_family
控制OSI网络层协议。
socket type
控制OSI传输层协议。
Python支持3种address_family:AF_INET、AF_INET6
和AF_UNIX
,其中常用的是AF_INET
,用于互联网IP地址;AF_INET6
用于IPv6地址;AF_UNIX
用于UNIX域套接字(UDS),这是一种进程间通信协议。
同时,Python也支持两种socket type:SOCK_DGRAM
和SOCK_STREAM
。SOCK_DGRAM
类型用于面向消息的数据报传输,这与UDP有关,数据报套接字使用相互独立的消息。 ...
Get 写给系统管理员的Python脚本编程指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.