目录

第二十七章:网络编程

本章目标

完成本章学习后,你将能够:

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. 实现端口扫描器

下一章:第二十八章:多线程