第二十七章:网络编程
本章目标
完成本章学习后,你将能够:
- 使用socket进行网络通信
- 使用http.client进行HTTP请求
- 理解TCP/UDP编程
Socket编程
import socket # 创建TCP客户端 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect(('example.com', 80)) client.send(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n') response = client.recv(4096) client.close()
HTTP请求
import urllib.request import json # GET请求 with urllib.request.urlopen('https://api.github.com') as response: data = json.loads(response.read()) # POST请求 req = urllib.request.Request( 'https://httpbin.org/post', data=b'key=value', headers={'Content-Type': 'application/x-www-form-urlencoded'}, method='POST' ) with urllib.request.urlopen(req) as response: print(response.read())
本章练习
1. 实现简单的TCP客户端/服务器 2. 实现HTTP GET/POST工具 3. 实现端口扫描器
下一章:第二十八章:多线程