Drucken über „TCP/IP-Stream“ bezeichnet das „TCP-Stream“-Protokoll, das einen Ausgabefilter im EtherShare Drucksystem für die Kommunikation zwischen Spooler und RIP oder Drucker darstellt. „TCP-Stream“ ist ein Standard-UNIX-Protokoll. Wir empfehlen das Drucken über „TCP/IP-Stream“ für TCP/IP-RIPs, da Anwendungsprogramme so die Schriftenlisten von einem Drucker anfordern, Fehlermeldungen vom Drucker empfangen sowie bereits laufende Druckaufträge abbrechen kann. Es ist einfach anzuwenden und mit „Telnet“ kompatibel. Ein Nachteil ist, dass TCP/IP ein kleines Treiberprogramm benötigt (wird von EtherShare bereitgestellt), das Fehlermeldungen zum Benutzer weiterleitet und den Drucker steuert. Man kann aber auch (ohne Fehlerrückmeldung) über „Telnet“-ähnliche Verbindungen drucken.
Die in HELIOS EtherShare implementierte UNIX-basierte AppleTalk-Netzwerksoftware erlaubt die Ansteuerung von PostScript-Druckern auf mehrere Arten: (a) Windows SMB/CIFS-Verbindung („smbif“-Filter), (b) EtherTalk- / LocalTalk-Verbindung („papif“-Filter), (c) TCP/IP-Verbindung („tcpif“-Filter) sowie (d) „remote lpr“.
Weitere Informationen finden Sie unter „The HELIOS printing system“ im HELIOS Base Handbuch (engl.).
TCP/IP kommt im „TCP/IP-Stream“-Protokoll als Verbindungstyp zum Einsatz. Im Vergleich zu „Remote lpr“ hat „TCP/IP-Stream“ den Vorteil, dass Anwendungsprogramme Schriftenlisten vom Drucker anfordern und Fehlermeldungen vom Drucker empfangen können. Darüber hinaus ist „TCP/IP-Stream“ einfach in der Anwendung, da es mit „Telnet“ kompatibel ist. HELIOS „TCP/IP-Stream“ funktioniert wie folgt:
Selbst dann, wenn das RIP gerade einen Druckauftrag verarbeitet, sollte es keine Verbindungsversuche seitens des Hosts zurückweisen sondern stattdessen die Anfrage annehmen, eine entsprechende Statusmeldung zurücksenden und die Verbindung sofort wieder schließen. Eine typische Statusmeldung sieht so aus:
%%[job: dave@test document; status: busy; source: TCP/IP]%%
Der Ausgabefilter „tcpif“ sollte die Werte des Schlüsselwortes „status“ folgendermaßen interpretieren: alle Werte mit Ausnahme von „idle“ zeigen, dass das RIP gerade beschäftigt ist, woraufhin „tcpif“ eine vordefinierte Zeit wartet, bevor es die Verbindungsanfrage wiederholt.
Es sollte ein separater Mechanismus zur Verfügung stehen, der einen Abbruchbefehl zum PostScript-Interpreter schickt, um sehr lange oder fehlerhafte Druckaufträge abzubrechen. HELIOS verwendet zu diesem Zweck einen zusätzlichen Kontrollport, z. B. 4001 (nennen wir ihn TCP_CTRL). Der zusätzliche Port schafft Transparenz zwischen Druck- und Steuersignalen, so dass diese nicht als Teil des Druckauftrags interpretiert werden (beispielsweise als Binärdaten). Es gibt zwei Möglichkeiten:
Dieses Konzept ist zwar auch mit RIPs ohne zusätzlichen TCP/IP-Kontrollport kompatibel, hierbei fehlt Ihnen jedoch die Möglichkeit, den aktuellen Status des Interpreters zu prüfen und Druckaufträge sofort abzubrechen.
Fehler- und Statusmeldungen sollten folgende Syntax aufweisen:
%%[keyword1: value1; keyword2: value2; ...]%%
Der HELIOS „tcpif“-Filter erkennt zur Zeit folgende Schlüsselwörter:
„status“
Status des RIPs. Sämtliche Werte der Schlüsselwörter (wie z. B. „busy“ oder „processing“) mit Ausnahme von „idle“ zeigen an, dass das RIP beschäftigt ist.
„PrinterError“
Ein ernster Fehler ist aufgetreten. Die gesamte Meldung wird von „tcpif“ sofort an die Systemkonsole weitergeleitet. Für Drucker wie „LaserWriter“ o. ä. sind folgende Werte für „PrinterError“ typisch: „Papierstau“ oder „Papier nachlegen“.
„Flushing“
Ein vorangegangener Syntaxfehler hat verhindert, dass der Druckauftrag fertiggestellt wurde, so dass alle weiteren Daten für diesen Auftrag vom RIP ignoriert werden. Das Schlüsselwort „Flushing“ lässt „tcpif“ den Druckauftrag sofort abbrechen und den Rest der Meldung ignorieren.
Das „TCP-Stream“-Protokoll ist ein Ausgabefilter im EtherShare Drucksystem für die Kommunikation zwischen Spooler und RIP oder Drucker. Es ist ein Standard-UNIX-Protokoll, aber was ungewöhnlich ist, ist folgendes:
Beispiele für das „TCP-Stream“-Protokoll finden sich in den meisten UNIX-Programmierhandbüchern, wie z. B. „UNIX Network Programming“ von W. Richard Stevens (Prentice Hall).
Das EtherShare „TCP/IP-Stream“-Protokoll bietet folgende Vor- bzw. Nachteile gegenüber anderen TCP/IP-Verbindungen und -typen:
+ Vorteil:
Anwendungsprogramme können Schriftenlisten vom Drucker anfordern, Fehlermeldungen empfangen und bereits laufende Druckaufträge abbrechen.
+ Vorteil:
Einfach in der Anwendung, da „TCP/IP-Stream“ mit „Telnet“ kompatibel ist.
- Nachteil:
TCP/IP benötigt ein kleines Treiberprogramm (wird von EtherShare bereitgestellt), das Fehlermeldungen zum Benutzer weiterleitet und den Drucker steuert. Man kann aber auch (ohne Fehlerrückmeldung) über „Telnet“-ähnliche Verbindungen drucken.
„Remote lpr“-Verbindungen bieten folgende Vor- bzw. Nachteile gegenüber anderen TCP/IP-Verbindungsmethoden:
+ Vorteil:
Der Treiber ist standardmäßig in BSD sowie System V.4 UNIX enthalten und muss nicht separat zur Verfügung gestellt werden.
- Nachteil:
Fehlermeldungen werden nicht automatisch an den Benutzer ausgegeben, da „Remote lpr“ nur über einen 512-Byte großen Statusblock verfügt. Des weiteren können keine Schriftenlisten vom Drucker angefordert werden.