Клиент удаленного доступа к файлам - PullRequest
2 голосов
/ 05 ноября 2010

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

Какой протокол идеально подходит для такого рода целей?Я не хочу использовать сырые сокеты (или FTP), чтобы попытаться избежать проблем с брандмауэром.Веб-сокеты могут быть хорошей альтернативой.Есть ли другие способы сделать это?

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

Ответы [ 3 ]

0 голосов
/ 05 ноября 2010

По моему мнению, использование java.nio будет оптимальным решением. С помощью пакета java.nio вы можете буферизовать весь файл и отправить его по сети в соответствии с запросом. Это означает, что когда кто-то запрашивает файл. Он не будет напрямую загружать полный файл на удаленный клиент, вместо этого приложение будет загружать байт содержимого, полученного с сервера. С использованием классов MappedByteBuffer и FileChannel пакета java.nio его легко реализовать.

Ниже ссылка должна помочь вам реализовать решение. http://rox -xmlrpc.sourceforge.net / niotut /

0 голосов
/ 05 ноября 2010

Моя первая мысль - зачем изобретать велосипед.Просто запустите веб-сервер на компьютере отдельного человека и настройте его так, чтобы интересующие файлы были доступны через HTTP.

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

Предполагая, что у вас есть веб-сервер с выходом в Интернет, вы можете настроить Apache httpd mod_proxyпрокси через веб-сервер, работающий на рабочем столе.Вы можете найти документацию по mod_proxy в режиме онлайн, но минимальный уровень конфигурации будет

ProxyRequests on
ProxyPass /computer/abc http://abc.internalnet/somewhere/
ProxyPassReverse /computer/abc http://abc.internalnet/somewhere/
0 голосов
/ 05 ноября 2010

Для java, вы можете просто прочитать файл и Base64 кодировать его, а затем отправить данные, как вы идете, с символом конца файла в конце. Посмотрите буферизованные потоки вывода и ввода, а также сокеты.

...