Делаю игру на питоне. Он использует сокеты. Это мой первый опыт использования сокетов.
Вот часть моего кода:
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# get local machine name
host = socket.gethostname()
port = 9999
# bind to the port
serversocket.bind((host, port))
# queue up to 5 requests
serversocket.listen(5)
player = 1
keys = []
playerSockets = []
print "Waiting for players..."
while True:
# establish a connection
clientsocket, addr = serversocket.accept()
key = id_generator()
keys.append(key)
playerSockets.append(clientsocket)
clientsocket.send(str(player)+"\r\n")
clientsocket.send(str(key)+"\r\n")
print "Player " + str(player) + " connected."
player = player + 1
if player > 3 or currentEpochtime() > endConn:
break
print str(player-1) + " active players.\n"
if(player < 3):
print "Not enough Players. Closing..."
serversocket.close()
quit()
#Other Stuff Continues
Теперь он отправляет вышеуказанные данные (игрок и ключ) только после того, как в моем коде появится следующий оператор отправки. Но затем этот следующий оператор отправки никогда не отправляется, потому что он ожидает ответа от клиента. Но клиент ничего не отправляет, так как он еще не получил данные от предыдущего оператора отправки на сервере.
Я очень долго пытался найти решение, но не могу этого сделать.
Пожалуйста помоги!