Bueno probé el código y el problema es que si el usuario no ingresa nada en el cliente, no vovlés a preguntar, entonces se queda esperando una respuesta a un mensaje que nunca fué enviado. Así que deberías reemplazar esto:
Código Python:
Ver originalif data != " ": # si no ai datos no lo envia
clientsocket.send(data)# enviamos los datos que hemos escrito
else:
print "No has escrito nada"
Por esto:
Código Python:
Ver originalif data: # si no ai datos no lo envia
clientsocket.send(data)# enviamos los datos que hemos escrito
else:
print "No has escrito nada, vuelve a intentarlo."
continue # Vuelve a comenzar el bucle
Por cierto tenes como medio una ensalada de espacios en el código, a veces haces indentaciones de 8 espacios y a veces de 2, selecciona un patrón y seguilo en todo el código, aunque lo más común es usar 4 espacios.
Espero que te sirva!