1
我正在IDLE中的服务器和客户端之间运行的猜数字游戏。我用两个while循环,如下所示:虽然服务器和客户端之间的循环(Python)
服务器:
l = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Generate random number
integer = random.randrange(1, 10)
l.bind(("127.0.0.1", 4001))
l.listen(5)
while True:
(s, ca) = l.accept()
#Send instruction to client
s.send("What is your guess? ".encode())
#Receive guess from client
y = s.recv(4096).decode()
#Break out of the loop if the guess was correct
if int(y) == integer:
break
s.close()
客户:
#User gets 3 guesses
for x in range(0, int(chances)):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", 4001))
#Get instruction from server and make a guess
y = input(s.recv(80).decode())
#Guess a number and send it to the server
s.send(y.encode())
s.close()
用户应该有三次机会,以获得数权利。但是,目前的设置只允许用户由于某种原因进行一次猜测。在此之后,服务器的while循环停止发送指令,因此用户无法猜测。我该如何解决?
为什么你要在每次迭代中创建并连接一个新套接字? – 2014-10-16 11:03:58