Python 网络编程
网络编程允许计算机通过网络相互通信。Python 提供了多个功能强大的库,使得创建客户端和服务器应用程序变得相对简单。本章将介绍两个核心的网络编程模块:socket 用于底层网络通信,requests 用于高层的 HTTP 通信。
核心概念
- 套接字 (Socket): 是网络通信的基石。你可以把它想象成网络连接的一个端点,就像一个电话插座。两台计算机需要通过套接字建立连接才能交换数据。
- IP 地址: 网络上每台计算机的唯一标识符(如
192.168.1.1)。 - 端口 (Port): 一个 16 位的数字(0-65535),用于标识一台计算机上的特定应用程序或服务。例如,HTTP 服务通常在 80 端口,HTTPS 在 443 端口。
- 协议 (Protocol): 控制数据如何在网络上传输的规则集。最常见的有 TCP 和 UDP。
- TCP (传输控制协议): 面向连接、可靠的协议。它确保数据按顺序、无差错地到达。适用于文件传输、网页浏览等需要高可靠性的场景。
- UDP (用户数据报协议): 无连接、不可靠的协议。它只是尽力发送数据,但不保证数据会到达或按顺序到达。适用于视频流、在线游戏等速度比可靠性更重要的场景。
socket 模块:底层网络编程
socket 模块提供了对底层套接字接口的访问。下面是一个简单的 TCP 服务器和客户端的例子。
TCP 服务器 (server.py)
TCP 客户端 (client.py)
requests 库:高层 HTTP 编程
对于大多数 Web 相关的开发(如调用 API、爬取网页),直接使用 socket 会非常繁琐。requests 是一个非常流行且用户友好的第三方库,专门用于发送 HTTP 请求。
首先,你需要安装它:
pip install requests
发送 GET 请求
GET 请求用于从服务器获取数据。
发送 POST 请求
POST 请求用于向服务器提交数据(例如,提交一个表单)。