Debian 上用 Python 做网络编程的入门路线
一 环境准备
python3 --versionsudo apt update && sudo apt install python3sudo apt install python3-pippip3 install requestspip3 install asyncio(Python 3.4+ 内置,按需安装生态工具)二 核心知识与最小示例
import socket
HOST, PORT = '0.0.0.0', 12345
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 端口复用
s.bind((HOST, PORT))
s.listen(5)
print(f"Server listening on {HOST}:{PORT}")
while True:
conn, addr = s.accept()
with conn:
data = conn.recv(1024).decode('utf-8')
print(f"Received: {data}")
conn.sendall(b"Hello from server")
import socket
HOST, PORT = '127.0.0.1', 12345
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b"Hello, server")
reply = s.recv(1024).decode('utf-8')
print(f"Server reply: {reply}")
python3 server.pypython3 client.pync localhost 12345 或 telnet localhost 12345三 进阶方向与常用库
import asyncio
async def handle_echo(reader, writer):
data = await reader.read(100)
message = data.decode()
writer.write(data)
await writer.drain()
writer.close()
async def main():
server = await asyncio.start_server(handle_echo, '127.0.0.1', 8888)
async with server:
await server.serve_forever()
asyncio.run(main())
四 调试与排错要点
nc -vz 127.0.0.1 12345、telnet 127.0.0.1 12345sudo tcpdump -i lo -nn port 12345(排查握手、丢包、重传等)。五 下一步学习与实践清单