Java Programme fernsteuern?
hadaka
- java
1 Deus Figendi0 hotti1 flowh0 pgoetz0 mabuhay
Hey Leute,
Ich arbeite zur Zeit an einem Programm welches in Java geschrieben wird.
Nun stehe ich vor folgendem Problem:
Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.
Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...
Könnt ihr mir da helfen?
MfG Hadaka
Ich hab von Java zwar keine Ahnung aber normalerweise gibt es etwa zwei Möglichkeiten, die auch noch verwandt sind:
1. Programm1 lauscht auf irgendeinem Netzwerk-Port und Programm2 sendet seine Kommandos an diesen Netzwerkport
2. Programm1 lauscht auf irgendeinem Netzwerk-Port und Programm2 etabliert eine Verbindung zu diesem Programm. Über diesen Kanal tauschen sich die beiden Programme aus.
Das macht man normalerweise mit Sockets.
Abwandlung: Du verwendest ein vorhandenes Netzwerkprotokoll (was weiß ich http+xml oder IRC oder XMPP oder sonst was) mit einer der o.g. Varianten.
Oder du denkst dir was abstruses aus wie z.B. eine Datei in die das eine Programm reinschreibt und dass das andere Programm liest (kann man gut machen wenn man durch Firewalls muss oder so, dann muss irgendein anderes Programm eben die Dat(ei)en entgegennehmen und abspeichern).
h1,
Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...
Stichwort Pipe.
Horst (Pipesmoker)
Hallo hadaka.
Nachdem hier zwei konkrete Techniken, Pipe und Sockets, genannt wurden, will ich den Oberbegriff dazu in den Ring werfen: Interprozesskommunikation.
Möglichkeiten der IPC in Java kannst du z.B. auf stackoverflow.com [1][2] oder natürlich mit Hilfe von Google finden.
Servus,
Flo
Servus Hadaka,
[...]
Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.
Mir fehlt leider ein Ansatzt zur Lösung dieses Problems...
Da es sich um ein Java-Problem handelt, ist der richtige Ansatz (der sich auch mit den nicht-Java-spezifischen Antworten verträgt): RMI - Remote Method Invocation. Damit kannst Du in Java sehr einfach Methodenaufrufe zwischen verschiedenen Java-VMs realisieren.
Schöne Grüße,
Peter
Hi,
Mein Programm1(Java) soll auf einem PC laufen, während es von Programm2(Java) gesteuert wird. Heißt, wenn ich bei Programm2 einen Knopf drücke, soll er in Programm 1 eine Funktion ausführen.
Sollen denn beide Programme auf demselben PC laufen oder auf unterschiedlichen? Wenn auf unterschiedlichen PC's und die Kommunikation über das Netzwerk läuft, hätte ich die ein einfaches Beispiel (eine kleine Bibliothek) welche ich mal selbst geschrieben hab und einigermassen funktioniert.
mfg
mabuhay