Thema: Delphi Service mit TCP-Server

Einzelnen Beitrag anzeigen

Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

Service mit TCP-Server

  Alt 8. Jul 2008, 20:02
Hallo zusammen,
nachdem ich mich entschlossen habe mein Projekt ohne die VCL-Unterstützung zu realisieren stehe ich nun (wie zu erwarten war) vor einem Problem. Ich möchte gerne einen TCP Server in meinem Service unterbringen und weiß nicht so wirklich wie ich das anstellen soll.
Ich habe das Beispiel von Assarbad durchgearbeitet und mir einen Service nach meinen Wünschen zusammengebastelt. Doch die Schleife in der ServiceMain Procedure vergeudet leider nur (wie zu erwarten...) 99% der Rechenzeit:
Delphi-Quellcode:
repeat
    if not SvcPaused then
    begin
    end;
  until SvcStopped;
Leider geht hier auch das Beispiel der MSDN nicht weiter... anstatt die CPU zu blockieren warten die mit WaitForSingleObject auf ein Event, welches Sie im ControlHandler auslösen falls der Service beendet wird.
Vor ewigen Zeiten habe ich mal einen TCP-Server in ein Konsolenprogramm gepackt (auch nach irgendeinem Tutorial...) und damit ein wenig rumgespielt. Ich musste dabei nichts weiter tun als die Komponente zu erzeugen und dafür zu sorgen, dass das Programm offen bleibt. Dazu hab ich einfach auf die nächste Eingabe in der Konsole gewartet.
So nun habe ich mir gedacht bei meinem Service könnte es doch vielleicht auch so laufen: Ich erzeuge bei Initialisieren die Komponente und sorge einfach dafür, dass der Service "offen bleibt". Nur wie mache ich das? die Endlosschleife ist ja nunmal kein probates mittel und mit dem Eventkram dürfte mein Service ja bei WaitForSingleObject steckenbleiben, oder? Die Frage ist nun wie bekomm ich meinen TCP-Server in dem Service unter?
Gruß
Mr_G
Jan
  Mit Zitat antworten Zitat