Как лучше реализовать загрузчик файлов? Всем привет. Пытаюсь реализовать быстрый P2P загрузчик файлов на C++ для Windows. Вначале пробовал на libtorrent (rastebar), но он плохо справляется с web-seed и выдаёт всего 1-2 мб\сек при скорости интернета в 10-11 мб\сек. При этом P2P там работает хорошо, со всеми пирами есть соединение. Но даже с учётом этого достигнуть максимальной скорости получается довольно редко и держится она не долго. К тому же не у 100% пользователей корректно работает торрент, поэтому web-seed очень важен. Затем я перешёл на aria2. В нём полностью противоположная ситуация. В торрент загрузках web-seed работает прекрасно, выдаёт все 11 мб\сек, но к другим пирам отказывается подключаться (которые тоже через aria2). Наверное это из-за того, что отсутствует поддержка UPnP и NAT-PMP. Немного помогло включение IPv6, появилось соединение с 1 из 10 пиров. Но этого всё равно очень мало. Какие варианты ещё можно попробовать?
Есть несколько вариантов, которые вы можете попробовать:
Использование библиотеки libcurl для загрузки файлов по HTTP/HTTPS. libcurl позволяет загружать файлы с web-серверов с использованием множества соединений, что может увеличить скорость загрузки. Вы можете также реализовать P2P с использованием других протоколов как добавочную опцию.Реализация собственного протокола P2P с поддержкой NAT traversal (UPnP, NAT-PMP), чтобы обеспечить более стабильное соединение с другими пирами.Использование других библиотек для P2P, таких как libp2p, которые могут обеспечить более эффективное и надежное соединение с другими пирами.
Кроме того, стоит обратить внимание на настройку опций и параметров вашего P2P загрузчика, таких как количество одновременных соединений, размер блоков для загрузки и т.д. Может быть, изменение этих параметров поможет увеличить скорость загрузки.
Есть несколько вариантов, которые вы можете попробовать:
Использование библиотеки libcurl для загрузки файлов по HTTP/HTTPS. libcurl позволяет загружать файлы с web-серверов с использованием множества соединений, что может увеличить скорость загрузки. Вы можете также реализовать P2P с использованием других протоколов как добавочную опцию.Реализация собственного протокола P2P с поддержкой NAT traversal (UPnP, NAT-PMP), чтобы обеспечить более стабильное соединение с другими пирами.Использование других библиотек для P2P, таких как libp2p, которые могут обеспечить более эффективное и надежное соединение с другими пирами.Кроме того, стоит обратить внимание на настройку опций и параметров вашего P2P загрузчика, таких как количество одновременных соединений, размер блоков для загрузки и т.д. Может быть, изменение этих параметров поможет увеличить скорость загрузки.