Entwickler-Ecke

Internet / Netzwerk - PrintServer mit TIdTCPServer


Ace87 - Mo 04.09.06 13:48
Titel: PrintServer mit TIdTCPServer
Ich will einen PrintServer Programmieren, mit dem ich mehrere Dateien über die Print-Funktion(ich benutze Port 8100) aller Benutzer im Netzwerk empfangen kann, diese Lokal auf der Festplatte speichert und dann zum Drucker schiebe.

Das alles sollte am besten über den TIdTCPServer gehen.
Mein Problem ist, dass die empfangenden Daten nicht komplett gespeichert oder sogar gar nicht gespeichert wird.
Wenn die Dateien auf meinem Rechner dann sind, dann ist es kein Problem mehr sie auszudrucken.

Habe Indy 9 und Delphi 7 auf dem Rechner

Würde mich freuen, wenn mir jemand helfen könnte.

Mit freundlichen Grüßen

David


Narses - Mo 04.09.06 14:16

Moin und :welcome: im Forum!

Nur aus Interesse: Warum gibst du den Drucker nicht im Netzwerk frei oder aktivierst den Druckserverdienst?

cu
Narses


Ace87 - Mo 04.09.06 14:21

weil das ein Firmennetz ist und der Rechner nicht übers Netzwerk angesprochen werden kann.
Bin da nur Praktikan^^


Narses - Mo 04.09.06 14:26

Moin!

user profile iconAce87 hat folgendes geschrieben:
weil das ein Firmennetz ist und der Rechner nicht übers Netzwerk angesprochen werden kann.

:gruebel: Wenn der Rechner nicht über das Netzwerk angesprochen werden kann, kannst du auch keine Druckdaten mit einem Delphi-Programm empfangen... :nixweiss:

Also, was genau wird das da? ;)

cu
Narses


Ace87 - Mo 04.09.06 14:31

Ne der Rechner ist im Netz.
Aber was weiß ich :P
soll das einfach machen

Bestimmt nur so ne Praktikantenbeschäftigung :P
wäre trotzdem nett, wenn jemand was wüsste^^


Ace87 - Di 05.09.06 09:13

OK

Habe ich schon gelöst ;)
war eigentlich kein Problem

MIT FREUNDLICHEN GRÜßEN

David


Narses - Di 05.09.06 09:24

Moin!

Warum stellst du denn deine Lösung nicht hier vor? Dann hätten andere mit diesem Problem einen Ansatz, das ist doch der Sinn eines Forums... ;)

cu
Narses


Ace87 - Do 07.09.06 08:24

Also im ServerConnect habe ich die Datei angelegt
und im ServerDisconnect habe ich die auf den Drucker geworfen und dann gelöscht!!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TServerFrmMain.ServerExecute(AThread: TIdPeerThread);
var
  fStream:TFileStream;
begin
  fStream := TFileStream.Create('printfile'+ IntToStr(AThread.Handle) + '.dat', fmOpenReadWrite);
  AThread.Connection.ReadStream(fStream,-1,true);
  FreeAndNil(fStream);
end;


Mit freundlichen Grüßen

David


Ace87 - Do 07.09.06 08:29

Andere Frage

Verstehe das Prinzip mit dem Dienst nicht.
Würde ja gerne den Print-Server als Dienst laufen lassen
habe mir aber die Hilfe angeschaut und verstehe das nicht
Kann mir jemand helfen??

Mit freundlichen Grüßen

David


Narses - Do 07.09.06 09:07

Moin!

user profile iconAce87 hat folgendes geschrieben:
und im ServerDisconnect habe ich die auf den Drucker geworfen und dann gelöscht!!

Wenn du jetzt dazu auch noch deinen Code veröffentlichst, dann ist das Beispiel sogar komplett! :D

user profile iconAce87 hat folgendes geschrieben:
Andere Frage
Verstehe das Prinzip mit dem Dienst nicht.

Neue Frage - neuer Thread! :mahn: ;) Sorry, aber ist hier Forumsregel. ;)

cu
Narses


Ace87 - Do 07.09.06 09:40

Ja ok dachte, dass das schieben auf den Drucker und das Löschen bekannt wäre


Delphi-Quelltext
1:
2:
CopyFile(PChar('printfile'+ IntToStr(AThread.Handle) + '.dat'), PChar(Edit1.Text), false);
DeleteFile('printfile'+ IntToStr(AThread.Handle) + '.dat');


im Edit1 ist die Drucker kennung drin

Und das mit dem Dienst ist ja gar nicht so wichtig
war nur ne Frage am Rande


Narses - Do 07.09.06 09:44

Moin!

user profile iconAce87 hat folgendes geschrieben:

Delphi-Quelltext
1:
CopyFile(PChar('printfile'+ IntToStr(AThread.Handle) + '.dat'), PChar(Edit1.Text), false);                    


im Edit1 ist die Drucker kennung drin

Gib doch bitte noch ein Beispiel, wie diese Kennung aussehen könnte, dann haben wir wirklich alles beisammen. ;)

cu
Narses