2012-03-31 2 views
1

Я разработал приложение для совместного использования файлов в java, используя TCP-сокет. Теперь вопрос в том, как я могу сделать это приложение P2P? Может ли распределенная таблица хэшей (DHT) сделать это или есть другие варианты, которые я могу реализовать в своем приложении, чтобы сделать это P2P? Я пытался получить идеи об этом в течение длительного времени, но я только больше смущен. Пожалуйста помоги.Приложение для обмена файлами P2P

+0

Не могли бы вы описать более ту часть, которую вы уже реализовали, чтобы мы могли лучше объяснить, чего не хватает? – Vincent

+0

Я создал клиент и сервер, используя TCP-сокет. Однако я закодировал как клиент, так и сервер в одном приложении. Сейчас мое приложение может подключаться к серверу, искать файлы в папке (мое приложение создает папку, в которой клиенты могут искать файлы, которые они хотят), и если какое-либо совпадение найдено, файл передается клиенту. В настоящее время характер моего приложения в основном клиент/сервер, и я не знаю, как это сделать P2P. Итак, мой вопрос: может ли DHT сделать мое приложение P2P или есть другие меры, которые я могу реализовать? Спасибо. – philanthropist

+0

Я отредактировал свой ответ, чтобы отразить ваш комментарий. – Vincent

ответ

0

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

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

EDIT, чтобы ответить на комментарий под вопросом:

Ваше приложение должно подключить несколько коллег. В зависимости от того, как вы их выбираете (случайные люди или знакомые контакты), вы используете, соответственно, сеть одноранговых сетей («p2p») или сеть «друг друга» («f2f»).

Лес предоставляет приложениям сеть f2f, но приложение может направлять сообщения в верхней части этой сети для достижения (анонимного) p2p.

Для классической сети p2p вам нужно будет подключить DHT, и вам потребуется загрузить его через сервер (-ы), который принимает участие в DHT.

В общем, приложение p2p не так просто сделать, и вам придется иметь дело с гораздо более подробной информацией здесь и там. Если вы действительно хотите поэкспериментировать с ними, вы можете проверить существующие библиотеки DHT и посмотреть, как они работают. Сначала вы можете прочитать статью о Wikipedia about Kademlia, которая является базой для наиболее используемых алгоритмов DHT.

+0

Большое вам спасибо. Я обязательно буду следить за этим. – philanthropist

+0

Как использовать Лесную платформу? есть ли какой-либо шаблон или документация? –

+0

Лесная платформа - это мертвый проект (был сделан мной). Забудь об этом. – Vincent

0

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

0

Я разрабатываю простое приложение для обмена файлами P2P в java тоже, но мне трудно. Если вы напишете его в java. Вы можете искать Vuze или jBittorrent, что может помочь вам быстрее его развивать.

Смежные вопросы