====== 第二十七章:网络编程 ======
===== 本章目标 =====
完成本章学习后,你将能够:
* 使用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. 实现端口扫描器
下一章:[[python_course:chapter28|第二十八章:多线程]]