def EscuchaPeticion(self):
		while True:
			time.sleep(1)
			server = xmlrpclib.ServerProxy("http://"+self.ip1+":8000",allow_none=True) 
			ipOtro = server.getTuIp()
			print 'IP de otra persona '+str(ipOtro)
			if(ipOtro!='disponible'):
				server.setMiIp('disponible') #Marcamos la ip como disponible
				self.c = Bob(self.usr,self.ip1,ipOtro) #ponemos la ip que desea conectarse
				self.c.show()
	def conectar(self):
		
		if(self.max<0):
			return
		id_row = int(str(self.id_row.toPlainText()))-1 #obtenemos el di con el que deseamos conectar
		if(self.max<id_row or id_row < 0):
			return
		#Recuperamos info
		usuario = str(self.tableWidget.item(id_row,0).text())
		ip =  str(self.tableWidget.item(id_row,1).text())
		
		self.hiloServidorOtro = threading.Thread(target=self.mandarIp,args=(ip,))
		self.hiloServidorOtro.start()
		self.c = Bob(self.usr,self.ip1,ip) #ponemos la ip que desea conectarse
		self.c.show()
class VentanaServidor(QMainWindow,main_class):
	def __init__(self,usuario,ip1,ipServidor):
		QMainWindow.__init__(self)
		self.setupUi(self)
		self.act.clicked.connect(self.actualizar)
		self.usr = usuario
		self.ip1 = ip1
		self.ipServidor = ipServidor
		self.puerto = 8001
		#Generamos un proxy para mandar la informacion al servidor
		conexion = "http://"+self.ipServidor+":"+str(self.puerto)
		self.proxy = xmlrpclib.ServerProxy(conexion,allow_none=True) 
		#Agregamos un nuevo usuario
		self.proxy.setUsuario(self.usr,self.ip1)
		self.conec.clicked.connect(self.conectar)
		self.desc.clicked.connect(self.desconectar)
		#Headers
		self.max = -1
		self.actualizar()
 		self.Escuchar = threading.Thread(target=self.EscuchaPeticion)
		self.Escuchar.start()
	
	#Se dedica a escuchar si hay una ip que quiere conversar con el		
	def EscuchaPeticion(self):
		while True:
			time.sleep(1)
			server = xmlrpclib.ServerProxy("http://"+self.ip1+":8000",allow_none=True) 
			ipOtro = server.getTuIp()
			print 'IP de otra persona '+str(ipOtro)
			if(ipOtro!='disponible'):
				server.setMiIp('disponible') #Marcamos la ip como disponible
				self.c = Bob(self.usr,self.ip1,ipOtro) #ponemos la ip que desea conectarse
				self.c.show()

	#Se borra del servidor con su ip el usuario.				
	def desconectar(self):
		print self.proxy.removeUsuario(self.usr,self.ip1)
		print 'Desconectando a '+self.usr+' '+self.ip1
		
		
 	#Actualizamos la tabla con las peticiones que llegan al servidor general
	def actualizar(self):
		self.tableWidget.clear()
		cadena = self.proxy.getAll().split(',') # obtenemos un arreglo con usuarios y sus ips
		cont = 0
		self.header(len(cadena))
		self.max = len(cadena)
		if(len(cadena)==1): #solo hay una persona
			return
		for i in cadena:
			subCadena = i.split('-')
			if(len(subCadena)==1):
				return
			ip = QtGui.QLineEdit(subCadena[1]).text()
			usr = QtGui.QLineEdit(subCadena[0]).text()[1:]
			print 'usuario '+self.usr+' - '+usr+' Hizo salto de renglon'
			if(self.usr!=usr and cont<self.max):# and self.ip1!=ip.text()) or True):
				self.tableWidget.setItem(cont, 0, QtGui.QTableWidgetItem(usr))
				self.tableWidget.setItem(cont, 1, QtGui.QTableWidgetItem(ip))
				cont = cont+1
		
	
	#Contectamos con el otro usuario
	def conectar(self):
		
		if(self.max<0):
			return
		id_row = int(str(self.id_row.toPlainText()))-1 #obtenemos el di con el que deseamos conectar
		if(self.max<id_row or id_row < 0):
			return
		#Recuperamos info
		usuario = str(self.tableWidget.item(id_row,0).text())
		ip =  str(self.tableWidget.item(id_row,1).text())
		
		self.hiloServidorOtro = threading.Thread(target=self.mandarIp,args=(ip,))
		self.hiloServidorOtro.start()
		self.c = Bob(self.usr,self.ip1,ip) #ponemos la ip que desea conectarse
		self.c.show()
	
	#Mandamos la ip al servidor privado con el que vamos a conectar
	def mandarIp(self,ipconectar):
		server = xmlrpclib.ServerProxy("http://"+ipconectar+":8000",allow_none=True)
		server.setMiIp(self.ip1) #Mandamos nuestra ip al otro usuario
		

	#Encabezados de la tabla Usuario | IP 	
	def header(self,row):						  
		self.tableWidget.setRowCount(row-1)
		self.tableWidget.setColumnCount(2)
		header = (QStringList() << 'Usuario' << 'Direccion IP')
		self.tableWidget.setHorizontalHeaderLabels(header)