conosco los hilos a nivel teorico, se que existen dos modulos para hacer uso de ellos, uno es de bajo ivel y el otro de alto nivel, el primero es el threading y el segundo es el thread, esto lo he visto en una wiki, despues de eso se que existen muchisimos metodos pero no se cual usar para mi proposito osea una chat local que puede atender multples clientes, lo que tengo ahora es un servidor que puede atender solo un cliente, si me conecto con otro cliente se cierra la conexion, el codigo es el siguiente
#servidor
import socket
host = "127.0.0.1"
port = 6666
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print ("Socket Created")
sock.bind((host, port))
print ("socket bind complete")
sock.listen(1)
print ("socket now listening")
while 1:
conn, addr = sock.accept()
try:
print('conexion con {}.'.format(addr))
conn.send("server: Hello client".encode('UTF-8'))
while True:
datos = conn.recv(4096)
if datos:
print('recibido: {}'.format(datos.decode('utf-8')))
else:
print("prueba")
break
finally:
conn.close()
#cliente
import socket
host = "127.0.0.1"
port = 6666
sock = socket.socket()
sock.connect((host, port))
datos = sock.recv(4096)
print (datos.decode('utf-8'))
while True:
message = input("envia un mensaje")
sock.send(message.encode('utf-8'))
if message == "quit":
break
print("bye")
sock.close()
agradesco cualquier sugerencia o solucion