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))
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())