第10章 网络基础——套接字编程

本章我们将学习套接字(socket)和3种Internet模块:httpftpliburllib,还将了解Python中用于网络的socket模块。其中,http是处理超文本传输协议HTTP)的程序包,ftplib模块用于执行与FTP相关的自动化工作,urllib是处理与URL相关的工作的程序包。

本章将介绍以下主题。

  • 套接字。
  • http程序包。
  • ftplib模块。
  • urllib程序包。

本节我们学习网络套接字,这里使用Python的socket模块。套接字是通信的接口,包括本地通信和互联网通信。socket模块有一个socket类,用于处理数据通道,它还包含一些处理网络相关任务的函数。我们要使用socket模块的函数,首先需要导入socket模块。

我们来看如何创建套接字。socket类有一个socket函数,它有两个参数:address_familysocket type

语法如下所示。

import socket
s = socket.socket(address_family, socket type)

address_family控制OSI网络层协议。

socket type控制OSI传输层协议。

Python支持3种address_family:AF_INET、AF_INET6AF_UNIX,其中常用的是AF_INET,用于互联网IP地址;AF_INET6用于IPv6地址;AF_UNIX用于UNIX域套接字UDS),这是一种进程间通信协议。

同时,Python也支持两种socket type:SOCK_DGRAMSOCK_STREAMSOCK_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.