def create(self): print("Attempting to host!") port_no, status = QInputDialog().getText(self.window, "Create", "Desired Port Number", QLineEdit.Normal) if status and (not port_no.isdigit() or not (int(port_no) >= 1024 and int(port_no) <= 65535)): self.create() elif status and port_no: self.connected = True try: self.socket.bind(("0.0.0.0", int(port_no))) self.socket.listen() partner, sock_accept = self.socket.accept() self.socket.close() self.socket = partner self.received.insertHtml( """<font color="green"><b><u>You're in!</b></u></font>""") self.received.insertPlainText("\n-----------\n") self.listen = Listener(partner) self.listen.start() self.listen.finished.connect(self.close) self.listen.chat_signal.connect(self.m_create) except: self.connected = False traceback.print_exc(file=sys.stdout)
def host(self): # Prompt user to set port number port_num, status = QInputDialog().getText( self.window, "Host", "Provide a port number between 1024 and 65535", QLineEdit.Normal) # Error checking for port number if status and (not port_num.isdigit() or not (int(port_num)) in range(1023, 65536)): self.host() if status and port_num: self.connected = True try: # Prompt waiting for other user self.chat_status.setText("Waiting for connection") # Starting server self.socket.bind(("0.0.0.0", int(port_num))) self.socket.listen() other, client = self.socket.accept() self.socket.close() self.socket = other # Message for established connection self.chat_status.setText("Established connection with " + str(client)) # Listening self.listen = Listener(other) self.listen.start() self.listen.finished.connect(self.close_connection) self.listen.signal.connect(self.create_mes) except: self.connected = False connect_error = QMessageBox() connect_error.setText( "Something went wrong. Please try again") connect_error.setStyle(QStyleFactory.create("Fusion")) connect_error.setStyleSheet( "font:bold; color: rgb(153, 170, 181); background-color: rgb(44, 47, 51); font-size: 12px" ) connect_error.exec() traceback.print_exc(file=sys.stdout)
def host(self): port, ok = QInputDialog().getText( self.window, "Host", "Give Port Number\nPort should be between 1024 and 65535", QLineEdit.Normal) if ok and (not port.isdigit() or not (int(port) >= 1024 and int(port) <= 65535)): self.host() elif ok and port: self.status.setText("Awaiting Connection") self.connected = True self.toggle_buttons() try: # Wait for new connection self.socket.bind(("0.0.0.0", int(port))) self.socket.listen() conn, client = self.socket.accept() self.socket.close() self.socket = conn self.status.setText("Connection made with " + str(client)) self.incoming_text.insertHtml("<b> Connection Formed </b>") self.incoming_text.insertPlainText("\n") # Listening Logic self.listen_thread = ListenThread(conn) self.listen_thread.start() self.listen_thread.finished.connect(self.connection_closed) self.listen_thread.sig.connect(self.new_mes) except: self.connected = False self.toggle_buttons() self.status.setText( "There was an issue hosting... Please try again") traceback.print_exc(file=sys.stdout)