Как отправить данные между двумя клиентами - PullRequest
0 голосов
/ 05 ноября 2019

Я делаю простую игру с многопользовательским режимом. Мне нужно как-то отправить данные между одним игроком и другим. Я не могу найти способ передачи данных между двумя клиентами. Есть ли способ переслать их через сервер?

Я использую библиотеку socketserver для приема соединений. Вот как я обрабатываю соединения.

def handle(self):
    data = self.request.recv(BUFFSIZE).decode("utf-8")
    print("Received connection")
    print(data)

1 Ответ

1 голос
/ 05 ноября 2019

Из книги пьес 90-х годов: одним из клиентов может быть сервер;другие клиенты (в той же локальной сети) подключаются к нему.

Он не будет хорошо работать вне локальной сети из-за NAT.

Обычно вам необходимо запустить выделенный сервер где-нибудь, что позволит пользователям подключаться и маршрутизировать сообщения между ними.

Естественно, вы захотите запустить всю игровую логику на сервере и оставить клиентам только отображение состояния и пользовательский ввод.

Кроме того, на одном сервере может размещаться несколько игр.

В плане реализации сервер сокетов из стандартной библиотеки будет хорошим началом;HTTP-сервер из той же стандартной библиотеки, запуск еще проще.

...