【发布时间】:2021-04-30 17:49:26
【问题描述】:
我是 socket 和 python 编程的新手,我正在尝试在服务器和客户端之间构建一个简单的游戏。基本上,服务器输入一个单词,客户端尝试从服务器单词的前两个字母开始猜测另一个单词。示例:Server:computer|Client:erase|Server:secondary|Client:rye 我有一个循环,它从客户端获取消息并将其发送回它,反之亦然:
#server.py
while True:
message_sent = input(str("Me : "))
conn.send(message_sent.encode())
message_received = conn.recv(1024).decode()
first = message_sent[:2]
last = message_received[-2:]
print(s_name, ":", message_received)
if first != last:
message = "wrong word entered "
conn.send(message.encode())
print("\n")
break
和client.py:
#client.py
while True:
message_received = s.recv(1024).decode()
print(s_name, ":", message_received)
message_sent = input(str("Me : "))
first = message_sent[:2]
last = message_received[-2:]
if first != last:
message = "wrong word typed "
s.send(message.encode())
print("\n")
break
s.send(message_sent.encode())
当我从客户端向服务器发送一个不正确的单词时,我会得到“输入错误的单词”,但是当我以其他方式发送它时,它只会接受该单词并继续运行。我在这里做错了什么?
【问题讨论】:
-
如果客户端输入了一个错误的单词,你不希望它被发送到服务器,你希望客户端继续输入单词直到它得到一个正确的单词?
-
不,我只是想在那里完成游戏并宣布获胜
-
客户端和服务器都不检查响应是否包含“错误的单词”。他们应该检查是否属实,结束游戏。
-
"但是当我以其他方式发送它时,它只会接受这个词并继续前进。"你是什么意思?谁向谁发送什么,当它“继续”时会是什么样子,你能举个例子吗?
-
当我指的是“错误的词”时,我指的是一个不符合游戏规则的词。我正在尝试在 if 块中执行此操作,检查要发送的消息的前两个字母并检查收到的消息的最后两个字母