2015-12-12 61 views
0

服务器:猜数字游戏(客户端 - 服务器)

import socket 
import random 


randnumber = random.randrange(1,20) 
ip = '127.0.0.1' 
port = 5000 
n = 1 
tries = 0 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((ip,port)) 
s.listen(5) 
print("...<<") 

while True : 
     (c,a) = s.accept() 
     print("Sundedemenos me ton ",a)  
     data = c.recv(1024).decode()  
     if (data): 
      wellcome = ("Welcome to the guess the number game!") 
      c.send(wellcome.encode()) 
      gues =("What is your guess? ") 
      c.send(gues.encode()) 
      value = int(c.recv(1024).decode()) 
      print (value) 
      goal = abs(value-randnumber) 
      print(goal) 

c.close()  

客户:

import socket 
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.connect(("127.0.0.1",5000)) 


hello = ("hello") 
s.send(hello.encode()) 

wellcome = s.recv(1024).decode() 
print (wellcome) 

gues = s.recv(1024).decode() 
print (gues) 

while (gues): 

    if not gues: 
     break 
    else: 

     value = input() 
     s.send(value.encode()) 



s.close() 

你好, 为什么客户端运行千兆次为什么休息不工作? 我只是想让游戏运行在服务器和客户端上,例如“欢迎游戏”>“你猜怎么着?” >“5”>“你接近”>“6”>“你是更好的人”>结束

回答

0

这是一个永远是真的循环,因为gues永远不会改变!

while (gues): 

if not gues: 
    break 
else: 

    value = input() 
    s.send(value.encode()) 

另外,我觉得这两个while循环是在错误的地方:

  • 在客户端中,而循环永远不会从套接字进行读取,因此它是如何获取服务器的答案吗?
  • 在服务器上,我认为你需要第二个while循环。第一个告诉服务器“当你有另一个客户端”,然后您显示欢迎信息,然后你必须“而客户在猜测/还没有找到答案”

希望它能帮助,可惜的是不要”没有时间去实施它,但我认为这是一个很好的练习,你应该做:)