Hier ist der Server:Wie könnte ich diesen "Step-basierten" Python-Chat-Server und -Client verbessern, sodass er mehr als zwei Instanzen unterstützt?
import socket
HOST = '127.0.0.1'
PORT = 4444
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)
conn, addr = s.accept()
print addr, 'connected.'
while True:
data = conn.recv(1024)
print '> ', data
reply = raw_input(">> ")
conn.sendall(reply)
if reply == 'bye':
break
conn.close()
Und hier ist der Kunde:
import socket
HOST = '127.0.0.1'
PORT = 4444
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
message = raw_input("> ")
s.send(message)
reply = s.recv(1024)
print ">> ", repr(reply)
if message == 'bye':
break
s.close()
Was die effizienteste Weg ist, diesen Code zu aktualisieren mehrere Instanzen, und was noch wichtiger zu unterstützen: wie konnte ich zuweisen Namen (Nicknames) für alle Clients und machen sie so, dass Clients tippen können, wann immer sie wollen? Ich habe versucht, Threading zu verwenden, aber das war eine riesige Katastrophe.