Exemplo n.º 1
0
    def on_error(self, conn: QTcpSocket):
        """Handle socket errors.

        Args:
            conn (QTcpSocket): Socket object.

        Note:
            Emits error signal.
        """
        device_id = int(conn.objectName())
        e = conn.errorString()
        self.__logger.error("CLIENT-{} Error: {}".format(device_id, e))
        self.error.emit(device_id, str(e))
Exemplo n.º 2
0
    def on_connection(self, device_id: int, socket_descriptor: int):
        """Create new QTcpSocket object and setup connection with client.

        Args:
            device_id (int): Socket ID.
            socket_descriptor (int) Socket descriptor.
        Note:
            Emits connected signal.
        """
        socket = QTcpSocket()
        socket.setParent(None)  # noqa
        if socket.setSocketDescriptor(socket_descriptor):  # noqa
            socket.readyRead.connect(lambda: self.on_message(socket))  # noqa
            socket.disconnected.connect(lambda: self.on_disconnected(socket))  # noqa
            socket.error.connect(lambda: self.on_error(socket))  # noqa
            socket.setObjectName(str(device_id))
            self.sockets.append(socket)
            self.__logger.debug("New connection from CLIENT-{} "
                                "IP: {}:{}".format(socket.objectName(),
                                                   socket.peerAddress().toString(),
                                                   socket.peerPort()))
            self.connected.emit(int(socket.objectName()), socket.peerAddress().toString(), socket.peerPort())