AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Service mit TCP-Server

Ein Thema von Mr_G · begonnen am 8. Jul 2008 · letzter Beitrag vom 9. Jul 2008
Antwort Antwort
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, 19: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
Dax
(Gast)

n/a Beiträge
 
#2

Re: Service mit TCP-Server

  Alt 8. Jul 2008, 19:04
Schnapp' dir das MSDN-Beispiel und lagere alle Server-Sachen in einen Thread aus - dann läuft der Server selbst weiter, wenn der Hauptthread des Services blockiert.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

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

Re: Service mit TCP-Server

  Alt 8. Jul 2008, 19:22
Wie bekomme ich denn den Server dazu in dem entsprechenden Thread zu laufen?
Mit einfach erzeugen und das "OnExecute" setzen ist es ja wohl nicht getan...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

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

Re: Service mit TCP-Server

  Alt 9. Jul 2008, 13:19
In diesem Post ist quasi das gleiche Problem beschrieben. Der Unterschied ist der, dass hier mit der VCL gearbeitet wird.
Nach einem Chat habe ich aber Erfahren, dass das mit den Indys wohl auch nichts gegeben hat. Falls da nun keiner Erfahrungen hat oder mir jemand begründet von den Indys abraten kann, würde ich einfach mal mit der WinAPI arbeiten. Hab da ein super Tutorial gefunden...
Jan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 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