Я работаю над настройкой простой модели сервер / клиент, используя python, следующим образом.Цель состоит в том, чтобы клиент мог контролировать вывод кадров curses.
Я уже сделал несколько базовых примеров многопоточных эхо / чатов, поэтому мне удалось отправить текстовую информацию туда и обратно.Проблема в том, что я не знаю, как отправить любую другую информацию.Например, я использовал curses для создания «игры», в которой игрок может перемещать «спрайт» (фактически, фрагмент текста) вверх / вниз / вправо / влево.Как бы это было сделано через сокетную связь?В идеале клиент должен управлять спрайтом только с помощью клавиатурных команд, а сервер должен «передавать» графику обратно клиенту.Когда клиент подключается к серверу, именно клиент должен видеть выходные данные curses и иметь возможность управлять им, пока логика управляется сервером.
Единственное, что действительно сработало, этонастройка в стиле эха, когда текст отправляется туда и обратно.Когда я пытаюсь отправить (что я считаю, это) вывод кадра, то вывод отображается на стороне сервера (см. Код ниже).
Давайте предположим, что все остальное настроено (соединения через сокет, ошибкаобработка).Соответствующие вещи, которые я пробовал, это
connection.sendall(wrapper(draw))
на стороне сервера и
print(s.recv())
на стороне клиента, где s - рассматриваемый сокет.Здесь ничья похожа на
def draw(screen):
# set up screen
screen.addstr(sprite)
# refresh screen
, а обертка - это обертка.Эта функция рисует рамку проклятий со спрайтом на ней.
Первым шагом является вывод на экран вышеупомянутого экрана через сервер на стороне клиента.Следующим шагом является отправка ввода с клавиатуры на сервер, который должен вывести соответствующий кадр клиенту.На этом этапе кадр вытягивается на стороне сервера, и больше ничего не происходит.Я благодарен за любые подсказки / советы о том, как решить эти две проблемы.Пожалуйста, дайте мне знать, если какая-либо информация отсутствует.Заранее спасибо.