All pastes #618088 Raw Edit

Someone

public python v1 · immutable
·published 2007-07-13 19:02 UTC
rendered paste body
import 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	run = 1	while run:		nick = sk.recv(65).strip()		test = nicks.values()		if nick in test:			print "Nick existe, escriba uno nuevo\n"		else:			run = 0			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)