Все приглашаются улучшить эту страницу, потому что я пишу пока чисто теоретически на основе сведений из Google.
Когда в очередной раз я задумался о том, как бы на тонком клиенте (который у нас сделан в виде обычной системы на основе Сизифа, загружаемой по сети или с локального диска) обеспечить предоставление подключенных к нему устройств печати в сеть, и в очередной раз поборолся со связкой Samba+CUPS+Ghostscript, занимающей кучу места и имеющей кучу возможности глючить, то выяснилось, что в LTSP, к примеру, тихо и преспокойно используется простая и надёжная технология – предоставление устройств печати по протоколу Socket API (Jet Direct?).
Существующие протоколы печати можно поделить на две части, в зависимости от того, располагается очередь печати на стороне клиента или принтера (серверы печати). К первым относятся LPD, Jet Direct?, App Socket? (по сути просто предоставляющие порт принтера в сеть), ко вторым – IPP (CUPS) и SAMBA (сложные программные продукты, осуществляющие буферизацию заданий, их перенаправление, учёт и пр.).
Для сети Jet Direct? – это устройство, имеющее IP-адрес и предоставляющее порт принтера по протоколу TCP/IP на порту 9100.
Преимущества перед IPP
Минусы:
Индустриальный стандарт Socket API, под названием Jet Direct? используется компанией HP в своих устройствах.
В CUPS настраивается через указание адреса принтера "socket://host:9100".
В Windows – через создание локального порта Stardart TCP/IP (Стандартный TCP/IP)
В первую очередь это используется в продукции HP – по протоколу Jet Print? работают её принт-серверы, которые могут быть как встроенные в принтер, так и внешние, допускающие подключение любого принтера к сети.
lp_server – программа, которая ожидает задания на порту 9100/TCP и перенаправляет их в порт принтера напрямую (параллельный порт /dev/lp0), без буфера.
Разрабатывается в рамках проекта LPRng.
Поддерживает параллельные (USB тоже?) и последовательные принтеры и запускается как сервис.
http://etherboot.sourceforge.net/p910nd/
p910nd может быть настроен для запуска через xinetd. Поддерживает только параллельный интерфейс (и USB?)
Использует port 9100 + n, получаемые задания направляет в порт напрямую, без буфера.
В CUPS настраивается как App Socket? protocol, адрес принтера указывается как socket://host:9100.
Пример использования с помощью программы netcat:
Часто используемый TCP/IP протокол, описанный в RFC 1179. Краткое описание:
Большой проблемой является невозможность узнать состояние принтера в процессе печати. Чтобы получить информацию об ошибке, необходимо установить повторное соединение.
Поддерживается Tektronix и некоторыми другими производителями. Он похож на Socket API, с некоторыми отличиями:
Ссылок на эту страницу нет