передача p2p файлов через интернет - PullRequest
0 голосов
/ 23 августа 2011

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

1) многие из них говорили о соединениях tcp.Я был в состоянии отправить данные, но большую часть времени я не мог отправить большие объемы данных.

2) большинство примеров были созданы в локальных сетях.Я смог отправить данные через две разные сети через Интернет с примерами tcp, но мне пришлось открыть порты на маршрутизаторе и перенаправить их на компьютер, с которым я хотел связаться.

3) Библиотеки, такие как monotorrent или bitharp, где трудно найти, и я не нашел хороших примеров.Я не смог заставить их работать.

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

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Упомянутая вами проблема с открытием и переадресацией порта является очень реальной, и ее легко обойти. Такие приложения, как uTorrent, используют сопоставление портов UPnP и / или NAT-PMP , чтобы автоматически общаться с маршрутизатором и заставлять его выполнять сопоставления портов "на лету". Не все маршрутизаторы реализуют эти протоколы (и во многих случаях пользователи могут запретить их использование по соображениям безопасности), поэтому в Интернете полно вопросов о том, как выполнить переадресацию портов для limewire, uTorrent и т. Д.

Кроме прочтения, я бы порекомендовал вам задать свои вопросы более подробно, например ::10000

Мне удалось отправить данные, но большую часть времени я не мог отправить большие объемы данных.

это слишком расплывчато, чтобы мы могли догадаться, в чем проблема. Какой размер файла вы отправляли, по какому соединению, вы получили ошибки, или это было просто медленно и т. Д.?

0 голосов
/ 28 августа 2011

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

...