Zum Inhalt springen

Kommunikation zwischen zwei Prozesse


Empfohlene Beiträge

Geschrieben

Hi,

ich habe eine kleiner Programm, in ich zwischen zwei Prozessen Daten austauschen muss, und suche einen Weg, wie ich das bewerkstelligen kann. Aus der WinSDK ist mit die Funktion CreateNamedPipe bekannt, mit der ich einen Pipe in einem Process erstellen und in dem anderen mich mit dieser Pipe verbinden kann, um die Daten auszutauschen. Soetwas änhliches Suche ich für Java. Gibt es sowas? Oder hat vielleicht jemand eine andere Idee, wie ich das Problem lösen kann?

Geschrieben

Du könntest das ganze z.B. über Dateien machen. ODer vielleicht über java Net (setzt nen Stream auf nen Port deines PCs und das andere Programm hört diesen Port ab).

am besten wäre es aber (weis nicht ob das in deinem speziellen Fall Sinn macht) du machst deine beiden Programmteile in ein Programm und arbeitest mit Multithreading (mehrer Programmteile laufen quasi Parallel ab(natürlich nicht ganz Parallel da der Prozessor immer noch umschalten muss).

So kannst du dann die Methoden der Threads aufrufen oder direkt Variablen ändern wenn diese public sind.

Was hast du denn genau vor? Wenn du das vielleicht sagen könntest kann ich dir noch genauere Vorschläge machen.

Geschrieben
mit PipedInput- bzw. PipedOutputStreams
Das ganze funktioniert allerdings nur, wenn der Datenaustausch innerhalb eines Prozesses und dort in verschiedenen Threads (also letzten Endes dergleichen JVM) abläuft. Wenn ich den OP richtig verstanden habe geht es hier allerdings darum zwischen verschiedenen Prozessen Daten auszutauschen, dann fallen die Pipes weg.

Zum Ursprungsproblem: Es gibt eine ganze Reihe von möglichen Lösungen:

- Files von Prozess1 schreiben und vom Prozess2 lesen

- Datenbankeinträge schreiben/lesen

- Lokale Sockets öffnen und darüber die Daten austauschen

Wenn Prozess2 von Prozess1 aus gestartet worden ist (oder andersrum), stout und stderr auslesen, stdin schreiben

Geschrieben
Das ganze funktioniert allerdings nur, wenn der Datenaustausch innerhalb eines Prozesses und dort in verschiedenen Threads (also letzten Endes dergleichen JVM) abläuft. Wenn ich den OP richtig verstanden habe geht es hier allerdings darum zwischen verschiedenen Prozessen Daten auszutauschen, dann fallen die Pipes weg.

Deswegen habe ich mich ja auch auf speedis Kommentar bezogen, die Programmteile in einem Programm zu vereinen. Das mein Vorschlag nur innerhalb eines Prozesses funktioniert, ist mir auch klar.

Geschrieben
Deswegen habe ich mich ja auch auf speedis Kommentar bezogen, die Programmteile in einem Programm zu vereinen.
Dann macht es sowieso viel mehr Sinn direkt die Datenstrukturen aufeinander abzustimmen und die Objekte direkt miteinander kommunizieren zu lassen.

Vielleicht kann uns ja der OP mal verraten, was genau an Daten zwischen den zwei Anwendungen ausgetauscht werden soll. Ansonsten geht das muntere Raten und Einwerfen von Ideen, die vielleicht/wahrscheinlich für den genauen Einsatzzweck vollkommen überdimensioniert sind, munter weiter.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...