目录
案例一:UDP协议实现的猜数字游戏
游戏概述
这是一个基于UDP协议的客户端-服务器猜数字游戏,服务器随机生成一个1-100的数字,客户端通过猜测数字与服务器交互,服务器会提示猜测是太大还是太小。
服务器端实现步骤
-
导入所需模块
import socket import random -
初始化游戏参数
num_boom = random.randint(1, 100) # 生成1-100的随机数 current_min = 1 # 当前最小范围 current_max = 100 # 当前最大范围 -
创建UDP套接字
sk = socket.socket(type=socket.SOCK_DGRAM) # 创建UDP socket -
绑定IP和端口
sk.bind(('0.0.0.0', 8080)) # 绑定到所有可用IP的8080端口 print("游戏服务器已启动,等待玩家连接...") -
主游戏循环
while True: # 等待客户端消息 msg_client, addr = sk.recvfrom(1024) # 接收最多1024字节 print(f"收到来自{addr}的消息") # 解析消息 (格式: "玩家名:猜测数字") try: name, guess_str = msg_client.decode("utf-8").split(":") guess = int(guess_str) except: sk.sendto("消息格式错误!请发送'名字:数字'".encode(), addr) continue -
判断猜测结果
# 判断猜测大小 if guess < num_boom: current_min = guess + 1 response = f"{name}猜了{guess},太小了!当前范围: {current_min}-{current_max}" elif guess > num_boom: current_max = guess - 1 response = f"{name}猜了{guess},太大了!当前范围: {current_min}-{current_max}" else: response = f"恭喜{name}!猜对了!数字是{num_boom}!" sk.sendto(response.encode(), addr) break # 发送响应 sk.sendto(response
UDP猜数字与TCP文件传输案例解析

最低0.47元/天 解锁文章
4521

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



