Как установить p2p-соединение между двумя устройствами, такими как торрент

Я хочу собрать систему с 2 или более устройствами. Устройства в системе могут отправлять файлы друг другу, используя p2p, а не через сервер (файлы для отправки не загружаются на сервер)

Чтобы очистить, предположим, что в моей системе 2 ПК, размещенных в 2 разных местах (не в локальной сети и без статического IP-адреса), они могут обмениваться файлами друг с другом через Интернет без сервера. Я не хочу, чтобы общие файлы загружались на сервер (не требуется времени и памяти).

Конечно, в моей системе по-прежнему будет сервер и база данных, которые будут хранить данные и передавать важную информацию между двумя устройствами через сокеты.

Я много искал в Интернете, и все, что я нашел, было в торрент-сети. Не знаю, как построить систему типа торрент.

Я не решил, какой язык или фреймворк буду использовать (Java, C#, Python, NodeJS). Любые предложения по учебнику, языкам, библиотекам, фреймворкам приветствуются.

Спасибо всем


person Do Trung Duc    schedule 31.05.2020    source источник


Ответы (1)


Поскольку у вас есть сервер, это намного проще.

  1. Использование вашего сервера для создания структуры ICE для обхода NAT

  2. Вам могут понадобиться некоторые машины, чтобы ослабить давление сервера при нахождении других узлов, поэтому рекомендуется использовать LSD и DHT.

  3. Использование протокола одноранговой сети для отправки файлов действительно хорошо.

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

person tyChen    schedule 01.06.2020