AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dienst und Indy TCPServer (Version 9)

Ein Thema von Die Muhkuh · begonnen am 24. Mai 2008 · letzter Beitrag vom 24. Mai 2008
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 17:39
Hi,

wie in einem anderen Thread schon geschrieben, hab ich einen Dienst mit TCPServer.

Jetzt ist ja die Sache, dass im OnExecute eine Endlosschleife sein muss, damit der Dienst sich nicht beendet. Jedoch mag ich gerade das Wort Endlosschleife nicht, da ich nicht weiß, wie sich das auf meinen TCPServer verhält.

Der Dienst macht nichts anderes, außer einen TCPServer zu erstellen, welcher Verbindungen entgegennimmt und ggf. mit einer Datenbank kommuniziert.

Durch die Endlosschleife könnte der Server blockiert werden, dass der keine Connections mitbekommt. Das heißt, ich müsste den Server in einen eigenen Thread auslagern.

Bevor ich mir nun aber die Arbeit mache, wollte ich wissen, ob ich damit richtig liege. Vielleicht hat ja jemand in dieser Sache schon Erfahrung gesammelt und mag diese mit mir teilen.

Grüße
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 17:42
Ziehe den Server einfach auf den Service, erledige Initialisierung im OnStart-Ereignis und verwende kein OnExecute. Dann betreibt der Service-Thread eine ganz normale Nachrichtenschleife.
Ansonsten ist das Äquivalent zu Application.ProcessMessages ServiceThread.ProcessRequests(false).
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 17:45
Hi Philip,

was meinst Du mit ziehe den Thread auf den Service? Welchen Thread meinst Du? Den des TIdTCPServers? Ein eigener? Was ganz anderes?

Ich hatte bisher noch keinen eigenen Dienst geschrieben, weswegen ein bisschen ausführlicher beschrieben nett wäre.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 20:58
Tut mir leid, das war natürlich Murks. Ich meinte den Server. Dann sollte eigentlich alles wie gewohnt funktionieren, solange du OnExecute leer lässt.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 20:59
Ich bin nur grad am überlegen, was Du damit meinst "Ziehe den Server in OnStart". Steh grad total auf dem Schlauch.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 21:02
Ich meine einfach zur Design-Zeit in der Formularansichtauf auf den Service ziehen. Das ist ja das tolle an nicht-visuellen Komponenten - man kann sie nicht nur auf Erben von TForm, sondern auch auf Erben von TDataModule ziehen.
Falls dann irgendeine Initialisierung ansteht, kannst du sie im OnStart durchführen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 21:07
Schau mal ganz vorsichtig, welche Delphi-Version ich hab.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 21:10
Hm, die Indys zicken mal wieder rum. Dann kannst du im Service einfach ein privates Feld deklarieren und den Server im OnCreate instanzieren und im OnDestroy wieder freigeben.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Dienst und Indy TCPServer (Version 9)

  Alt 24. Mai 2008, 22:52
So, nach ein bisschen Chat-Gebrabbel, war die Lösung doch ganz einfach. Ich hab den Service ja immer in der IDE gestartet, weshalb er ja immer beendet wurde.

Hab ich den Service installiert und gestartet, lief er ohne Probleme.

Heute ist das Brett vor meinem Kopf wohl zu groß.
  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 11:29 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