Zer0Galaxy 2 187 Опубликовано: 22 декабря, 2015 (изменено) Как может быть понятно из названия, данный пакет программ предназначен для обмена файлами между двумя или более ОС-компьютерами с использованием сетевых плат. Вопрос передачи файлов по проводной или беспроводной сети уже несколько раз поднимался на страницах нашего форума, но предлагаемое решение обладает одной существенной особенностью. Оно не просто передает тот или иной файл, оно позволяет одному компьютеру (клиенту) обращаться к дисковому пространству другого компьютера (сервера) как к своему собственному. Покажу на примере. Для демонстрации нам понадобится два компьютера, связанных при помощи проводных или беспроводных модемов. На одном из них, который мы в дальнейшем будем именовать - сервер, установим программу ftp_serv pastebin get F7d8Ef0S ftp_serv.lua Программа требует два параметра: имя, под которым наш сервер будет виден в сети, и путь к папке, которую сервер предоставляет для удаленного доступа. Имя не должно содержать пробелов, а папка должна принадлежать файловой системе, с которой была произведена загрузка OpenOS. Второй параметр может отсутствовать, в этом случае доступ будет предоставлен ко всей файловой системе. Для нашего примера создадим папку shared, а в ней папки и файлы с произвольными данными. Запустим ftp-сервер с именем, например, alpha. ftp_serv alpha shared Теперь обратимся ко второму компьютеру. Его мы будем именовать - клиент. На клиенте установим клиентскую часть. pastebin get 0u58kX0K ftp.lua Если клиентскую часть запустить с ключом /scan, будет произведен поиск доступных ftp-серверов. ftp /scan При сканировании выводятся имена серверов, расстояния до них и id сетевой платы сервера. Для того, чтобы подключиться к серверу необходимо запустить программу ftp с указанием имени сервера ftp alpha После подключения мы должны обнаружить в корне файловой системы папку ftp, а в ней папку с именем сервера - alpha. Вот тут внимание! Эта папка и всё, что в ней находится не скопированы с сервера, а предоставлены сервером удаленно. Вы можете копировать сюда или отсюда файлы, удалять их или открывать на редактирование так, как если бы они находились на локальном жестком диске клиента. Однако существует ограничение: один клиент может открыть на сервере не более одного файла одновременно. При попытке открыть второй файл, первый будет закрыт автоматически. Это связано с тем, что если клиент отключится не закрыв открытый файл, то файл фактически останется открытым на сервере, а ОС-компьютер имеет ограничение на количество открытых файлов. Для того, что бы отключиться от ftp-сервера, можно воспользоваться стандартной утилитой umount. Выйдите в корень файловой системы и выполните команду umount ftp/alpha Изменено 23 декабря, 2015 пользователем Zer0Galaxy 12 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 22 декабря, 2015 (изменено) Круто. Изменено 22 декабря, 2015 пользователем NEO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 22 декабря, 2015 Классно. У меня только один вопрос появился. Ты говоришь, что если клиент отвалится, то файл останется открытым. А если "прикрутить" проверку : после установления соединения, сервер, время от времени, пускай даёт запрос клиенту : "Ты тут?". И если по происшествии, заранее установленного времени, от клиента не будет ответа, то - закрывать файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 декабря, 2015 Можно еще так сделать, сервер принудительно закрывает файл, к которому не было обращения в течение определенного времени. Но ограничивать количество открываемых файлов все равно надо. Ведь клиентов может быть сколько угодно, а файлов можно открыть только 16. Скажем, открою я сразу 16 файлов и никто больше скачать с сервера ничего не сможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 22 декабря, 2015 Если это File Transfer Protocol (как написано в заголовке), то будьте добры, rfc959. Либо меняйте название, на какой нибудь Minecraft File Transfer Protocol (mFTP) 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 декабря, 2015 File Transfer Protocol переводится как "Протокол передачи файлов". Описанный в теме протокол предназначен для передачи файлов и он передает файлы. Поэтому, на мой взгляд, название темы полностью соответствует её содержанию. Если в мире существуют какие либо другие протоколы передачи файлов с таким же названием, то это совпадение случайно. Если словосочетание "File Transfer Protocol" запатентовано и правообладатель предъявит свои претензии, то я изменю название. В противном случае я бы хотел оставить как есть. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 22 декабря, 2015 File Transfer Protocol переводится как "Протокол передачи файлов". Описанный в теме протокол предназначен для передачи файлов и он передает файлы. Поэтому, на мой взгляд, название темы полностью соответствует её содержанию. Если в мире существуют какие либо другие протоколы передачи файлов с таким же названием, то это совпадение случайно. Если словосочетание "File Transfer Protocol" запатентовано и правообладатель предъявит свои претензии, то я изменю название. В противном случае я бы хотел оставить как есть. Не волнуйся, все хорошо, а инца не слушай, он всегда любит такие штучки делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 23 декабря, 2015 Не волнуйся, все хорошо, а инца не слушай, он всегда любит такие штучки делать. ЛехеИнцу лишь бы козявку какую-то кинуть в кого-то куда-то, вместо того, чтобы программку писать какую-то=) "Козявочник" он местный просто))) 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 23 декабря, 2015 Реализация собственного варианта протокола передачи файлов, да еще и монтированием удаленной файловой системы - хорошая задача. Второй этап - реализация клиента совместимого с общепринятым протоколом FTP? Было бы круто. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 23 декабря, 2015 (изменено) ЛехеИнцу лишь бы козявку какую-то кинуть в кого-то куда-то, вместо того, чтобы программку писать какую-то=) "Козявочник" он местный просто))) Нихрена. Я просто для майна писать не могу, знак свыше получил - майн сломался и лень фиксить. Так бы я сам написал нормальный фтп. А программку я итак пишу, только не для кубиков. Изменено 23 декабря, 2015 пользователем LeshaInc 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 23 декабря, 2015 Интересно Теперь вы можете без проблем сделать OpenCloud, но: Сделай программу как библиотеку. Чтобы можно было вставлять в другие программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 23 декабря, 2015 Сделай программу как библиотеку. Чтобы можно было вставлять в другие программы. Какую именно программу? Клиента или сервера? Клиент садится резидентно и предоставляет доступ к серверу как к файловой системе. А сервер тоже сделаю резидентным. Какие функции библиотека должна предоставлять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ZKoshak 30 Опубликовано: 21 января, 2017 (изменено) При записи в папку на клиенте и как следствии передачи файла, сервер валится с вот таким сообщением: Такая же шняга при копировании из папки. Изменено 22 января, 2017 пользователем ZKoshak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg 197 Опубликовано: 4 апреля, 2019 (изменено) Ограничения на размер файла определяется modem#maxPacketSize? Изменено 4 апреля, 2019 пользователем hohserg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах