Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie kann mein Programm einem Dienst Nachrichten senden? (https://www.delphipraxis.net/107234-wie-kann-mein-programm-einem-dienst-nachrichten-senden.html)

gpvg 24. Jan 2008 15:47


Wie kann mein Programm einem Dienst Nachrichten senden?
 
Und natürlich auch: Wie kann der Dienst meinem Programm Nachrichten schicken?
Noch ein kleiner Haken dabei: Der Dienst läuft unter einem anderen Account.

Bisher haben sich Anwendung und Dienst immer über Schreiben und Auslesen einer Datei verständigt, aber das ist sicher nicht gerade die professionelle Variante.

Hat jemand eine Idee?

Vielen Dank für die Hilfe.

mkinzler 24. Jan 2008 15:49

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Socket, Pipe

Apollonius 24. Jan 2008 15:50

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Named Pipes und Memory Mapped Files dürften zum am häufigsten Verwendeten gehören.

Tyrael Y. 24. Jan 2008 15:59

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
TCP/IP

Apollonius 24. Jan 2008 16:00

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Ist es sinnvoll, ein Netzwerkprotokoll zu verwenden, um zwischen Programmen auf demselben Computer Nachrichten auszutauschen?

thkerkmann 24. Jan 2008 16:13

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Zitat:

Zitat von Apollonius
Ist es sinnvoll, ein Netzwerkprotokoll zu verwenden, um zwischen Programmen auf demselben Computer Nachrichten auszutauschen?

Und ob....

Die Daten gelangen ja nicht bis auf die Netzwerkkarte, sondern werden auf Grund der Adresse (localhost / 127.0.0.1) nur im TCP Stack des OS gehalten und weitergeleitet.
Vorteile:
gesicherte Kommunikation (TCP/IP Protokoll)
Universell über Prozessgrenzen und Accounts hinweg
Leicht zu pflegen

Wir verwenden das in einem großen Softwaresystem schon seit Jahren, und das macht sich prima.

Ein weiterer Vorteil ist, dass man auch von einer anderen Maschine aus kommunizieren kann, wenn gewünscht. Keine Änderungen notwendig. Ein Client connected sich einfach auf den Dienst und arbeitet damit.

Gruss

Apollonius 24. Jan 2008 16:17

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Von der leichteren Portierung in ein Netzwerk abgesehen haben Pipes und MMFs auch die anderen Vorteile. Und irgendwie erscheint es mir widersinnig, TCP ohne Netzwerk zu verwenden, allein weil man einen Port blockiert. Ist aber auch egal.

Dezipaitor 24. Jan 2008 17:06

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Zitat:

Zitat von thkerkmann
Die Daten gelangen ja nicht bis auf die Netzwerkkarte, sondern werden auf Grund der Adresse (localhost / 127.0.0.1) nur im TCP Stack des OS gehalten und weitergeleitet.
Vorteile:
gesicherte Kommunikation (TCP/IP Protokoll)

Gruss

Sicher ist das wirklich nicht! Mit lokalem Netzwerksniffer kann man das wunderbar einsehen.

gpvg 25. Jan 2008 07:34

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
In Ordnung, wie Pipes grundsätzlich funktionieren, weiß ich als alter Linux-Freak.
Da mein Programm für Windows 2k und nachfolgende sein soll, dürfte das also nicht das Problem sein.

Jetzt kommen wir aber zum nächsten Punkt, der unter Windows nicht so ganz unwichtig ist.
Der Dienst läuft mit Systemrechten und nicht jeder soll ihn benutzen können. Die Frage ist, wie der Dienst erkennen kann, wer ihm da etwas durch die Pipe schickt, damit er dann (zum Beispiel über Gruppenmitgliedschaften) entscheiden kann, ob der User überhaupt berechtigt zu dieser Aktion ist.
Klar, der User könnte seinen Namen mitschicken, nur könnte das ja auch gelogen sein.

Tyrael Y. 25. Jan 2008 07:42

Re: Wie kann mein Programm einem Dienst Nachrichten senden?
 
Zitat:

Zitat von Dezipaitor
Zitat:

Zitat von thkerkmann
Die Daten gelangen ja nicht bis auf die Netzwerkkarte, sondern werden auf Grund der Adresse (localhost / 127.0.0.1) nur im TCP Stack des OS gehalten und weitergeleitet.
Vorteile:
gesicherte Kommunikation (TCP/IP Protokoll)

Gruss

Sicher ist das wirklich nicht! Mit lokalem Netzwerksniffer kann man das wunderbar einsehen.

Dann muss man halt vorher die Daten verschlüsseln, wenn diese so wichtig sind ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Seite 1 von 2  1 2      

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