AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kommunikation zwischen Formular- und Dienstanwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation zwischen Formular- und Dienstanwendung

Ein Thema von KWolf · begonnen am 3. Mai 2012 · letzter Beitrag vom 3. Mai 2012
Antwort Antwort
KWolf

Registriert seit: 22. Jun 2011
12 Beiträge
 
#1

Kommunikation zwischen Formular- und Dienstanwendung

  Alt 3. Mai 2012, 09:05
Hallo Forum,

ich frage mich, wie ich am besten Daten zwischen einer Formularanwendung und einer Dienstanwendung austauschen kann.

"Früher" habe ich hierzu Memory Mapped Files genutzt, dies funktioniert aber scheinbar seit Vista und Co. nicht mehr. Jedenfalls scheiterte bei mir die Kommunikation zwischen Programmen die in unterschiedlichen User-Sessions laufen.

Möglich wäre in beide Programme einen TCP/IP Client und Server zu integrieren und die Kommunikation dann per TCP/IP zu ermöglichen. Dies würde sicher gut funktionieren, allerdings wäre der Aufwand auch nicht ganz ohne.

Über Named Pipes habe ich etwas gelesen, bin mir jedoch nicht sicher, ob das wirklich funktioniert. Können über eine Namend Pipe zwischen verschiedenen User-Sessions Daten ausgetauscht werden? Zudem stellt sich mir hier die Frage wie das in der Praxis laufen könnte. Ich schreibe eine Information in diese Pipe (Programm A) und das Programm B muss diese Information wieder auslesen? Ginge timergesteuert, aber was mache ich wenn in wenigen Millisekunden mehrere Daten übertragen werden. Ich würde dann nur einen Teil dieser Daten tatsächlich abgreifen? Oder verstehe ich da etwas falsch?

Welche Möglichkeiten gibt es noch Daten zwischen Formular und Dienst sicher (und schnell) auszutauschen ohne das dabei was "verloren" geht?

Vielen Dank euch für alle Hinweise!

Gruß,
KWolf
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Kommunikation zwischen Formular- und Dienstanwendung

  Alt 3. Mai 2012, 09:16
Herzlich Willkommen in der DP

Ich würde das Ganze über TCP/IP laufen lassen, da ich hier die einfache Verteilung der Anwendung sehe. Du kannst dann den Dienst auch mal auf einem Server laufen lassen und mehrere Clients auf anderen Rechner bedienen. Ob sich wirklich der Aufwand lohnt kommt wohl auf die Anwendung drauf an.

Vielleicht schreibst du kurz auch noch, um was für eine Anwendung es geht.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Kommunikation zwischen Formular- und Dienstanwendung

  Alt 3. Mai 2012, 09:22
Geht zwischen Sessions, Du hast eine Server und eine Clientkomponente, der OnPipeMessage einen Stream anbieten der von Thread per Messages gefüllt wurde ... einen kleinen Wrapper darum basteln für das Protokoll ....

http://cc.embarcadero.com/Item/21507
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
KWolf

Registriert seit: 22. Jun 2011
12 Beiträge
 
#4

AW: Kommunikation zwischen Formular- und Dienstanwendung

  Alt 3. Mai 2012, 10:18
Hallo,

@s.h.a.r.k: Es geht einfach darum, dass ich über ein kleines Tool Einstellungen an einer Laufenden Dienstanwendung durchführen möchte. Der Dienst soll ebenfalls Feedback geben können.

@Bummi: Danke für den Link und die Info, dass sessionübergreifende Kommunikation möglich ist! Ich werde mir das mal ansehen!

Gruß und Danke!
KWolf
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#5

AW: Kommunikation zwischen Formular- und Dienstanwendung

  Alt 3. Mai 2012, 17:53
Ich benutze bei Verwendung von Named Pipes die Unit Pipes von rllibby. Leider weiß ich nicht mehr, wo ich die runtergeladen habe, aber ich kann dir sagen, dass darin die Klassen TPipeServer, TPipeClient und TPipeConsole enthalten sind. Die Unit registriert sogar die genannten Komponenten, so dass man sie einfach auf dem Formular plazieren und benutzen kann.

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:12 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