Socket网络编程基础:Echo Server实现
Echo Server是一种经典的网络编程示例,用于演示基本的客户端-服务器通信模型。其核心功能是将客户端发送的数据原样返回,常用于测试网络连接的可靠性和延迟。以下内容将详细讲解如何通过Python的socket模块实现一个简易的Echo Server。
实现原理
Echo Server基于TCP协议,通过监听指定端口接收客户端连接请求。服务器端通过socket.accept()方法接受连接,随后使用recv()接收数据,并通过sendall()将数据回传。整个过程分为以下步骤:
- 创建Socket对象:指定地址族(如IPv4)和协议类型(如TCP)。
- 绑定地址和端口:通过
bind()方法绑定到本地IP和端口。 - 监听连接:调用
listen()启动监听队列。 - 处理客户端请求:循环接受连接,收发数据。
完整代码示例
服务器端代码
import socket
def run_echo_server(host='127.0.0.1', port=65432):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen()
print(f"Server listening on {host}:{port}")
while True:
conn, addr = s.accept()
with conn:
print(f"Connected by {addr}")
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
print(f"Echoed: {data.decode()}")
if __name__ == "__main__":
run_echo_server()
客户端代码
import socket
def run_echo_client(host='127.0.0.1', port=65432):
with socket.socket(socket
495

被折叠的 条评论
为什么被折叠?



