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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...