def __init__(self,port): super(ServerGUI, self).__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.host = '' self.port = port self.backlog = 5 self.size = 1024 self.socket = None self.threads = [] try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind((self.host,self.port)) self.socket.listen(self.backlog) except socket.error: print "Could not open port. Aborting." sys.exit(1) self.c = None
class ServerGUI(QtGui.QWidget): def __init__(self,port): super(ServerGUI, self).__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.host = '' self.port = port self.backlog = 5 self.size = 1024 self.socket = None self.threads = [] try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind((self.host,self.port)) self.socket.listen(self.backlog) except socket.error: print "Could not open port. Aborting." sys.exit(1) self.c = None def run(self): input = [self.socket,sys.stdin] running = 1 while running: inputready,outputready,exceptready = select.select(input,[],[]) for s in inputready: #the polling loop, between sockets and stdin if s == self.socket: c = Client(self.socket.accept()) self.connect(c, QtCore.SIGNAL("updateUserlist"), self.updateUserlist) self.connect(c, QtCore.SIGNAL("updateText"), self.updateText) c.start() self.threads.append(c) elif s == sys.stdin: junk = sys.stdin.readline() running = 0 def updateUserlist(self): self.ui.listWidget.clear() for i in connections.keys(): #update my userlist item = QtGui.QListWidgetItem(str(i)) self.ui.listWidget.addItem(item) userlist = pickle.dumps(connections.keys()) for socket in connections.values(): #send the updated userlist try: socket.send(userlist) except IOError: print 'Socket already closed' def updateText(self, msg): self.ui.textEdit.append(msg) self.ui.textEdit.ensureCursorVisible()
class ServerGUI(QtGui.QWidget): def __init__(self,port): super(ServerGUI, self).__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.host = '' self.port = port self.backlog = 5 self.size = 1024 self.socket = None self.threads = [] try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind((self.host,self.port)) self.socket.listen(self.backlog) except socket.error: print "Could not open port. Aborting." sys.exit(1) self.c = None def run(self): input = [self.socket,sys.stdin] running = 1 while running: inputready,outputready,exceptready = select.select(input,[],[]) for s in inputready: #the polling loop, between sockets and stdin if s == self.socket: c = Client(self.socket.accept()) self.connect(c, QtCore.SIGNAL("updateUserlist"), self.updateUserlist) self.connect(c, QtCore.SIGNAL("updateText"), self.updateText) c.start() self.threads.append(c) elif s == sys.stdin: junk = sys.stdin.readline() running = 0 def updateUserlist(self): self.ui.listWidget.clear() for i in connections.keys(): item = QtGui.QListWidgetItem(str(i)) self.ui.listWidget.addItem(item) for socket in connections.values(): #send the updated userlist try: socket.send("ul__ "+' '.join(connections.keys())+"\n") except IOError: print 'Socket already closed' def updateText(self, msg): self.ui.textEdit.append(msg) self.ui.textEdit.ensureCursorVisible()