Бонжур, примите файл!
На «Маке» есть «Бонжур» — протокол, позволяющий регистрировать сервисы и смотреть какие сервисы зарегистрированы в локальной сети. Удобная штука, через неё «Айтюнс» делится музыкой с соседями по локалке, через неё работает «Эйрдроп» — служба для быстрого обмена файлами на «Маке».
В общем, пришла мне в голову идея — нельзя ли как-то сделать подобие «Эйрдропа» на bash. Попробовал — получилась утилита «bonfile», состоящая из двух частей и использующая «Бонжур» для анонса и поиска.
Если её запустить без параметров, то она ждёт анонса специальной службы и, если находит, коннектится на указанный IP по порту 1111 и выдаёт переданный файл на экран. Если запустить с параметром, ожидается, что это имя файла для передачи, далее анонсируется служба, ожидается соединение на порт 1111 и туда выдаётся файл.
При передаче контролируется контрольная сумма (md5), а файл сжимается утилитой gzip. Для анонса и получения анонсированных служб используется утилита dns-sd, для передачи файла — netcat.
bash bonfile.sh > somefile # запуск клиента (ожидаем приём файла)
# или
bash bonfile.sh somefile # запуск сервера (ожидаем подключения клиента)
«Bonjour» — не протокол. Это технология. Протокол — Zeroconf, который кстати помимо Mac OS X есть еще в Linux, BSD и Solaris. В общем почти во всех никсах (там софт Avahi называется)
А идея интересная.
Комментарий для lex.io:
Говорит нам Википедия: http://en.wikipedia.org/wiki/Bonjour_%28software%29
Зероконф — протокол, Бонжур — его реализация, отсюда: Бонжур — протокол.
Вот из русской Википедии ( http://ru.wikipedia.org/wiki/Bonjour ):
В лапках только русское, так что «Бонфайл»!
Комментарий для silent:
Нет, в лапках не только русское, с чего бы.
Комментарий для Евгения Степанищева:
Кавычки служат для смыслового выделения названия, в случае латиницы, это не обязательно, она и так выделяется. (Особенно если ещё и курсивом её писать, как это так же принято.)
Комментарий для dionys.myopenid.com:
Именно не обязательно, т. е. это допускается.
Комментарий для Евгения Степанищева:
«Не обязательно» относилось к смысловому выделению, а не к простановке кавычек. А так, конечно, допускается, типографика достаточно гибкая.