Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)