Написание приложения чата P2P на Python - PullRequest
1 голос
/ 24 ноября 2010

Можно ли написать одноранговое приложение для чата на Python?

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

PS: я намереваюсь изучать Twisted, так что если это задействовано, это будет дополнительным преимуществом!

Ответы [ 3 ]

4 голосов
/ 24 ноября 2010

Да. Вы можете сделать это довольно легко с Twisted. Просто сделайте так, чтобы один из пиров действовал как сервер, а другой - как клиент. На самом деле, извращенный учебник поможет вам в этом.

Единственная проблема, с которой вы можете столкнуться - это брандмауэры. Большинство людей управляют своими домашними машинами за маршрутизаторами SNAT, что затрудняет прямое подключение к ним извне. Вы можете обойти это с помощью переадресации портов.

3 голосов
/ 24 ноября 2010

Да, каждый компьютер (если он находится в одной сети) может установить экземпляр сервера с входящим и исходящим POST / GET.

0 голосов
/ 28 марта 2018

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

Я не знаком с витой, но я добился этого, используя только сокеты. Но да, даже мне любопытно узнать, как бы вы достигли общения в чате peer2peer, если к серверу подключено несколько клиентов. Создать приложение для чата очень просто, но мне трудно думать, как обращаться с одноранговыми соединениями.

...