I am making a game in python. It uses sockets. It is my first time using sockets.
Here is part of my code:
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
Now, it only sends the above data (player and key) only after the next send statement comes in my code. But then, that next send statement never sends because it is waiting for a reply from the client. But the client is not sending anything as it still hasn't received the data from the previous send statement in the server.
I have been trying to find a solution for a very long time, but cannot do so.
Please help!