以下是5个简单的Python网络编程实践案例,涵盖了基于TCP和UDP协议的不同应用场景,帮助你更好地理解网络编程在实际中的运用:
案例一:简单的TCP回显服务器与客户端
服务器端代码(tcp_echo_server.py
)
import socket
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_address = ('127.0.0.1', 8888)
server_socket.bind(server_address)
# 监听连接请求
server_socket.listen(5)
print("服务器已启动,正在等待客户端连接...")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"客户端 {
client_address} 已连接")
# 接收客户端发送的数据
data = client_socket.recv(1024)
print(f"收到客户端数据: {
data.decode('utf-8')}")
# 将接收到的数据原封不动返回给客户端(回显功能)
client_socket.send(data)
# 关闭与该客户端的套接字连接
client_socket.close()
客户端代码(tcp_echo_client.py
)
import socket
# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
server_address = ('127.0.0.1', 8888)
client_socket.connect(server_address)
# 发送数据给服务器
message = "你好,服务器!".encode('utf-8')
client_socket.send(message)
# 接收服务器返回的数据
data = client_socket.recv(1024)
print(f"收到服务器回复: {
data.decode('utf-8')}")
# 关闭套接字
client_socket.close()
在这个案例中,客户端向服务器发送一条消息,服务器收到后将消息原样返回给客户端,实现了简单的回显功能。
案例二:UDP聊天程序(简单版)
服务器端代码(udp_chat_server.py
)
import socket
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP地址和端口号