🧠 Python 标准库 - socket
模块详解(底层网络通信)
socket
是 Python 内置的底层网络通信模块,支持 TCP 和 UDP 协议,适用于构建基础网络客户端与服务器程序。
🔌 一、TCP 服务端示例
import socket
服务 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
服务.bind(("localhost", 12345))
服务.listen(1)
print("等待客户端连接...")
连接, 地址 = 服务.accept()
print("已连接:", 地址)
数据 = 连接.recv(1024).decode()
print("收到:", 数据)
连接.send("你好,客户端!".encode())
连接.close()
🧑💻 二、TCP 客户端示例
import socket
客户端 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
客户端.connect(("localhost", 12345))
客户端.send("你好,服务端!".encode())
数据 = 客户端.recv(1024).decode()
print("收到服务端回复:", 数据)
客户端.close()
📡 三、UDP 服务端示例
import socket
服务 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
服务.bind(("localhost", 23456))
print("UDP 服务运行中...")
数据, 客户地址 = 服务.recvfrom(1024)
print("收到:", 数据.decode())
服务.sendto("你好,UDP 客户端".encode(), 客户地址)
🛰️ 四、UDP 客户端示例
import socket
客户端 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
客户端.sendto("你好,UDP 服务器".encode(), ("localhost", 23456))
数据, _ = 客户端.recvfrom(1024)
print("收到回复:", 数据.decode())
客户端.close()
📘 常用方法概览
方法 | 说明 |
---|---|
socket() | 创建新 socket |
bind() | 绑定地址与端口(服务端) |
listen() | 开始监听(TCP) |
accept() | 接收连接(TCP) |
connect() | 发起连接(客户端) |
send() / recv() | TCP 发送 / 接收数据 |
sendto() / recvfrom() | UDP 发送 / 接收数据 |
close() | 关闭连接 |
✅ 总结
socket.AF_INET
: IPv4socket.SOCK_STREAM
: TCPsocket.SOCK_DGRAM
: UDP
socket
适合底层定制通信或教学演示,如需简洁访问 Web 推荐使用 requests
。