def execute(self, query: ClientQuery) -> ServerResponse: """ Выполнение произвольного запроса к серверу. :param query: Запрос :return: Ответ сервера (не забыть закрыть!) """ self.last_error = 0 sock = socket.socket() sock.connect((self.host, self.port)) packet = query.encode() sock.send(packet) result = ServerResponse(self) result.read_data(sock) result.initial_parse() return result
async def execute_async(self, query: ClientQuery) -> ServerResponse: """ Асинхронное исполнение запроса. ВНИМАНИЕ: сначала должна быть выполнена инициализация init_async()! :param query: Запрос. :return: Ответ сервера. """ self.last_error = 0 reader, writer = await asyncio.open_connection(self.host, self.port, loop=irbis_event_loop) packet = query.encode() writer.write(packet) result = ServerResponse(self) await result.read_data_async(reader) result.initial_parse() writer.close() return result