AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Kommunikation zwischen zwei Delphiprogrammen
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation zwischen zwei Delphiprogrammen

Ein Thema von rwb · begonnen am 26. Nov 2022 · letzter Beitrag vom 17. Nov 2023
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von rwb
rwb

Registriert seit: 28. Nov 2007
Ort: Tarmstedt
42 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 07:57
Hallo KodeZwerg,
ersteinmal danke für die Antwort. Auch wenn ich Vorlieben habe, hier also das Betriebssystem zu umgehen, kann es ja sein, dass das der einzige Weg ist. Ich bin daher offen für alle Vorschläge.
Gibt es Komponenten für IPC? Wie geht man das praktisch an?
Das Leben ist Freude
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#2

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 08:39
Dazu kurz zwei Stichworte:
Named Pipe
Sockets, entweder TCP oder UDP

Für letzteres entweder Indy nehmen, ist aber synchron oder
ICS (siehe Tools/GetIt), das wäre nicht blockierend asynchron.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 10:23
Zitat:
hier also das Betriebssystem zu umgehen
Ein "umgehen" des Betriebssystem ist hier nicht möglich.
Du kannst hier nur versuchen einen Weg zu finden, welcher z.B. nicht nur unter Windows verfügbar ist, sondern auch auf Linux gehen würde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 11:41
Die einfachste und in der Regel idiotensichere Möglichkeit, Daten von einem Programm an ein anderes zu übergeben, ist via Dateien.

Beispiel: Es gibt ein Verzeichnis A mit Eingabedateien und Verzeichnis B mit Ausgabedateien.
Programm 1 schreibt seine Daten, die berechnet werden sollen, in Verzeichnis A, Programm 2 wartet darauf, dass in Verzeichnis A Dateien angelegt werden, liest sie, verarbeitet sie und schreibt das Ergebnis in Verzeichnis B. Programm 1 wartet darauf, dass seine Ergebnisse in Verzeichnis B erscheinen und liest sie dann aus.

Das ist sicherlich nicht die schnellste, eleganteste und sicherste Lösung, aber es lässt sich wunderbar debuggen und testen. Ach ja, und es funktioniert auch auf einem Share im Netzwerk.

Man darf sich nur nicht von irgendwem erwischen lassen, dass man so eine simple Lösung verwendet statt irgendeines "Frameworks" oder einer Datenbank (wobei die schon Old School sind) oder eines "Microservices".
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 12:20
Die einfachste Lösung wäre doch per http...

Die eine App mach einen http oder REST Server auf... Die andere kann dann einfach per JSON die Anfrage senden und so auch die Antwort erhalten.

Mavarik

PS.: Also im Prinzip das, was TurboMagic schon geschrieben hat, nur einen Layer mehr.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#6

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 12:32
Auch das sollte mit ICS gehen oder vermutlich auch mit Indy, wenn es blockieren darf.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 26. Nov 2022, 12:54
Ich nutze hierfür Namend Pipes. Dafür gibt es eine Freeware Komponente, die das Ganze sehr einfach machen. Diese Freeware Komponente habe ich dir mal angehängt. Ich nutze dies schon sehr lange zum Steuern eines Windwosdienstes über ein Trayicon Programm.
Angehängte Dateien
Dateityp: pas RFNamedPipes.pas (53,9 KB, 86x aufgerufen)
Dateityp: pas RFNamedPipesObjInst.pas (7,3 KB, 74x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von rwb
rwb

Registriert seit: 28. Nov 2007
Ort: Tarmstedt
42 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 28. Nov 2022, 17:40
Hallo,
Ihre Lösung gefällt mir, ich könnte eine Textdate mit den Daten auf jeweils einer Zeile anlegen. Die Datei hätte mehrere Zeilen. Damit wäre auch eine Batchverarbeitung möglich. Dabei geht es mir dann auch nicht um Schnelligkeit.
Aber hier liegt der Haken:
>Programm 1 schreibt seine Daten, die berechnet werden sollen, in Verzeichnis A, Programm 2 wartet darauf, dass in Verzeichnis A Dateien angelegt werden,
Es ist das warten von Programm 2, also die Überwachung eines Verzeichnisses. Ich habe einen ziemlichen Teil des Sonntags damit verbracht dafür eine praktikable Lösung zu suchen. Hier in der Delphi-Praxis gibt es eine ganze Reihe von Beiträgen zu diesem Thema. Aber sie sind ziemlich alt mit Verweisen auf Webseiten die nicht mehr existieren mit anderen gebrochenen Links und Beiträgen die Probleme aufzeigen aber keine Lösung.
In der JCVL gibt es die Komponenten JvChangeNotify und TJvFolderMonitor. Leider brach die Installation der JXVL mit einem Fehler ab.
Hiermit komme ich also zur Zeit auch nicht weiter. Es gibt eine Watch_it.exe die Verzeichnisse überwacht und Aktionen auslöst. Ich brauch aber eine Unit oder Komponente die ich einbinden kann.
Wie haben Sie das gelöst?

>Man darf sich nur nicht von irgendwem erwischen lassen, dass man so eine simple Lösung verwendet statt irgendeines "Frameworks" oder einer Datenbank (wobei die >schon Old School sind) oder eines "Microservices".
Da habe ich keine Angst
Mit besten Grüßen
RWB
Das Leben ist Freude
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#9

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 28. Nov 2022, 19:15
Hallo,
Ihre Lösung gefällt mir, ich könnte eine Textdate mit den Daten auf jeweils einer Zeile anlegen. Die Datei hätte mehrere Zeilen. Damit wäre auch eine Batchverarbeitung möglich. Dabei geht es mir dann auch nicht um Schnelligkeit.
Aber hier liegt der Haken:
>Programm 1 schreibt seine Daten, die berechnet werden sollen, in Verzeichnis A, Programm 2 wartet darauf, dass in Verzeichnis A Dateien angelegt werden,
Es ist das warten von Programm 2, also die Überwachung eines Verzeichnisses. Ich habe einen ziemlichen Teil des Sonntags damit verbracht dafür eine praktikable Lösung zu suchen. Hier in der Delphi-Praxis gibt es eine ganze Reihe von Beiträgen zu diesem Thema. Aber sie sind ziemlich alt mit Verweisen auf Webseiten die nicht mehr existieren mit anderen gebrochenen Links und Beiträgen die Probleme aufzeigen aber keine Lösung.
In der JCVL gibt es die Komponenten JvChangeNotify und TJvFolderMonitor. Leider brach die Installation der JXVL mit einem Fehler ab.
Hiermit komme ich also zur Zeit auch nicht weiter. Es gibt eine Watch_it.exe die Verzeichnisse überwacht und Aktionen auslöst. Ich brauch aber eine Unit oder Komponente die ich einbinden kann.
Wie haben Sie das gelöst?

>Man darf sich nur nicht von irgendwem erwischen lassen, dass man so eine simple Lösung verwendet statt irgendeines "Frameworks" oder einer Datenbank (wobei die >schon Old School sind) oder eines "Microservices".
Da habe ich keine Angst
Mit besten Grüßen
RWB
Ja, in der JVCL gibt's was. Das nutzt intern m.W. irgendwelche Windows APIs, du könntest das also von deren Quellcode abgucken.
Aber: bei einer fehlgeschlagenen JVCL Installation werden wir dir da nur weiterhelfen können, wenn du uns die Fehlermeldung nennst. Wir haben leider keine Glaskugeln...
Hast du zuerst die JCL installiert?
Wie bist du zur Installation vorgegangen? Via Tools/GetIt Packagemnager?
  Mit Zitat antworten Zitat
Benutzerbild von rwb
rwb

Registriert seit: 28. Nov 2007
Ort: Tarmstedt
42 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Kommunikation zwischen zwei Delphiprogrammen

  Alt 28. Nov 2022, 21:58
Moin

>Hast du zuerst die JCL installiert?
>Wie bist du zur Installation vorgegangen? Via Tools/GetIt Packagemnager?
Ja, genau Tools/GetIt Packagemaneger, glücklicherweise hatte ich direct einen Screenshot gemacht. Ist angehängt.
Danach habe ich mir heruntergeladen:
JVCL349CompleteJCL27-Build5676.zip https://sourceforge.net/projects/jvcl/ und
https://github.com/project-jedi/jvcl jvcl-master.zip
aber damit komme ich nicht klar.
Angehängte Grafiken
Dateityp: jpg getIt error ics.JPG (63,0 KB, 28x aufgerufen)
Das Leben ist Freude
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz