请实现网络版猜数字游戏: 1)服务端随机生成一个1-99的数字 target ,2)客户端接收用户输入的猜测数字 number ,并发送给服务器 3)服务端通过比较 number 和 target ,如果 number < target ,则提示用户小了,如果 number > targ et 则提示用户大了,如果 data == target 则提示用户猜中了,同时结束该猜数字游戏,而猜大了或猜小了均提示用户继续猜,直到猜中结束
时间: 2023-06-12 18:07:40 浏览: 40
服务端代码:
```python
import random
import socket
# 生成随机数target
target = random.randint(1, 99)
print("随机数为:", target)
# 创建socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 绑定端口号
server_socket.bind((host, port))
# 设置最大连接数,超过后排队
server_socket.listen(1)
print("等待客户端连接...")
while True:
# 建立客户端连接
client_socket, client_address = server_socket.accept()
print("连接地址:", client_address)
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024).decode()
if not data:
break
# 将接收到的数据转换成数字
number = int(data)
# 比较number和target
if number < target:
msg = "猜小了,请继续猜"
elif number > target:
msg = "猜大了,请继续猜"
else:
msg = "恭喜你猜中了!"
break
# 发送提示信息给客户端
client_socket.send(msg.encode())
# 关闭连接
client_socket.close()
print("连接关闭")
```
客户端代码:
```python
import socket
# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 连接服务,指定主机和端口号
client_socket.connect((host, port))
while True:
# 从键盘输入猜测数字
number = input("请输入一个1-99之间的数字:")
# 发送猜测数字给服务端
client_socket.send(number.encode())
# 接收服务端发送的提示信息
data = client_socket.recv(1024).decode()
# 输出提示信息
print(data)
# 如果猜中了,结束循环
if "恭喜你猜中了" in data:
break
# 关闭连接
client_socket.close()
```
使用方法:
首先运行服务端代码,等待客户端连接。然后运行客户端代码,输入猜测数字即可开始游戏。