rendered paste bodyimport select, socket, syshost = ''port = 9999serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)serv.bind((host,port))serv.listen(5)serv.setblocking(0)nicks = {}msgs = {}def disconnect(sk): output.remove(sk) input.remove(sk) nicks.pop(sk) msgs.pop(sk)def get_nick(sk): global nicks nick = sk.recv(65).strip() test = nicks.values() if nick in test: print "Nick existe, escriba uno nuevo\nNick: " return None else: nicks[sk] = nick sk.send("Bienvenido %s!\n" % (nick))def get_msg(sk): global nicks #sk.send("\nMSG: ") data = sk.recv(512) nicke = nicks[sk] if data == '': msg = 'None\n' else: msg = "<%s> %s\n" % (nicke, data.strip()) for a in msgs: if a != sk: msgs[sk] += msg else: passdef send_buf(sk): try: if msgs[sk] != "": cont = sk.send(msgs[sk]) if cont < 0: disconnect(sk) return msgs[sk] = msgs[sk][cont:] except: passinput = [ serv ]output = []while 1: a,b,c = select.select(input,output , []) for i in a: if i == serv: run = 1 conn, addr = serv.accept() conn.setblocking(0) conn.send("Nick :") input.append(conn) output.append(conn) nicks[conn] = None msgs[conn] = "" #while run: #dar = conn.recv(1) #if str(dar.strip()) == "1": # run = 0 # nicks[conn] = None # msgs[conn] = "" # input.append(conn) # output.append(conn) #else: # pass else: if nicks[i] == None: get_nick(i) else: i.send("MSG: ") get_msg(i) for i in b: send_buf(i)