1. 网络通信基础与TCP协议解析
在当今互联网应用中,TCP协议承载了80%以上的网络流量。作为可靠的传输层协议,TCP通过三次握手建立连接、滑动窗口控制流量、序列号保证数据顺序等机制,为应用层提供了稳定的字节流传输服务。Python的socket模块正是对这一协议栈的编程接口封装。
TCP通信的核心在于建立稳定的双向通道。服务端需要经历创建套接字、绑定端口、监听连接、接受请求四个步骤;客户端则需创建套接字并主动发起连接。这种C/S架构模式适用于需要可靠传输的场景,如文件传输、远程控制、即时通讯等。
关键区别:UDP是无连接的"数据报"模式,而TCP是面向连接的"字节流"模式。选择协议时需要考虑数据可靠性和实时性的权衡。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Socket模块核心API详解
2.1 服务端关键操作流程
服务端实现需要严格遵循以下调用顺序:
python复制import socket
# 创建IPv4的TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置SO_REUSEADDR选项避免端口占用
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定到所有网络接口的8888端口
server_socket.bind(('0.0.0.0', 8888))
# 设置等待连接队列最大长度
server_socket.listen(5)
while True:
# 接受连接请求,返回新套接字和客户端地址
client_sock, addr = server_socket.accept()
print(f"来自 {addr} 的连接")
# 处理客户端请求
data = client_sock.recv(1024)
client_sock.send(b"HTTP/1.1 200 OK\r\n\r\nHello World")
# 关闭当前连接
client_sock.close()
2.2 客户端关键操作流程
客户端实现相对简单:
python复制client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# 设置连接超时时间为3秒
client_socket.settimeout(3.0)
# 连接服务端
client_socket.connect(('127.0.0.1', 8888))
# 发送HTTP请求
client_socket.sendall(b"GET / HTTP/1.1\r\nHost: local
