Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   idTCPServer LPR-Druck abfangen (https://www.delphipraxis.net/160440-idtcpserver-lpr-druck-abfangen.html)

CG2003 13. Mai 2011 06:50

idTCPServer LPR-Druck abfangen
 
Hallo,

ich schreibe gerade ein kleines Tool, welches mir Druckdatenströme aufzeichnen soll.
Den Druck über RAW (Port 9100) bekomme ich mit einem idTCP Server auch korrekt abgefangen,
nur der Druck über LPR (Port 515) funktioniert nicht.

Ich habe bisher nur den Port umgestellt. Wenn ich einen Druckauftrag (Druckeranschluß vorher auf LPR umgestellt) losschicke, registriert mein Tool das gar nicht erst...

Habt Ihr eine Idee?

CG2003 17. Mai 2011 07:14

AW: idTCPServer LPR-Druck abfangen
 
Hat keiner eine Idee?
Oder benötigt ihr noch mehr Informationen oder Code?

himitsu 17. Mai 2011 07:28

AW: idTCPServer LPR-Druck abfangen
 
Eventuell wartet die Gegenseite auf irgendeinen Steuerbefehl, von deinem Programm?

Da müßte man sich mal die Spezifikationen des LPR-Protocols ansehn und wie da was abläuft, bzw. was dein Programm alles machen muß.

Klaus01 17. Mai 2011 08:20

AW: idTCPServer LPR-Druck abfangen
 
Guten Morgen,

hast Du die Möglichkeit den Verbindungsaufbau z.B. mit Wireshark zu tracen?

Was meinst Du damit, dass Dein Socket nicht reagiert?
Wird keine TCP Verbindung aufbgebaut - oder kommen keine Daten an?

Grüße
Klaus

CG2003 17. Mai 2011 11:38

AW: idTCPServer LPR-Druck abfangen
 
Hallo,

doch, die Verbindung erkennt das Tool schon, jedoch erkennt er die Beendigung des Druckjobs anscheinend nicht.

Ist es vielleicht besser, wenn ich Euch die Sourcen hier hochlade?

Klaus01 17. Mai 2011 12:31

AW: idTCPServer LPR-Druck abfangen
 
Hallo,

baust Du einen Spooler?

Wie versuchst Du denn zur Zeit das Datenende zu detektieren?

Hier noch ein Auszug aus der entsprechenden RFC1179:
Zitat:

6.3 03 - Receive data file

+----+-------+----+------+----+
| 03 | Count | SP | Name | LF |
+----+-------+----+------+----+
Command code - 3
Operand 1 - Number of bytes in data file
Operand 2 - Name of data file

The data file may contain any 8 bit values at all. The total number
of bytes in the stream may be sent as the first operand, otherwise
the field should be cleared to 0. The name of the data file should
start with ASCII "dfA".
This should be followed by a three digit job
number. The job number should be followed by the host name which has
constructed the data file. Interpretation of the contents of the
data file is determined by the contents of the corresponding control
file. If a data file length has been specified, the next "Operand 1"
octets over the same TCP connection are the intended contents of the
data file. In this case, once all of the contents have been
delivered, an octet of zero bits is sent as an indication that the
file being sent is complete
. A second level of acknowledgement
processing must occur at this point.
Grüße
Klaus

CG2003 17. Mai 2011 20:14

AW: idTCPServer LPR-Druck abfangen
 
Hallo Klaus,

nein, keinen Spooler.
Das Tools soll nur zur Aufzeichnung von Druckdatenströmen dienen, um diese später bei Druckproblemen etc. auswerten zu können.
Öhm, Datenende? Frage ich bisher gar nicht ab. Bei RAW beendet der idTCP Server ja korrekt die Verbindung, nur bei LPR nicht.
Wie kann ich denn im idTCPServer herausfinden, ob das Ende bereits eingetreten ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz