# Befehle an externes Java-Programm senden



## moccajoghurt (15. Jan 2011)

Hi,

ich habe einen alten PC geschenkt bekommen, mit dem ich ein wenig herumspiele.
Ich möchte mir nun ein Programm schreiben, dass Strings von "außen" empfangen kann und anschließend verarbeitet. Beispielsweise würde ich gerne über mein Laptop einen String zu dem Programm auf meinem PC senden können. Würde gerne beispielsweise das CD-Laufwerk des PCs über das Laptop öffnen.

Ich weiß allerdings nicht welche Schnittstelle ich zwischen Laptop und PC nutzen kann. Eine Methode, die funktioniert, ist dass das Programm auf dem PC in regelmäßigen Abständen eine *.txt Datei auf einem ftp-server ausliest, die ich über das Laptop verändere. Das ist aber total umständlich und das Programm arbeitet nur in "Intervallen" und ist nicht "auf Bereitschaft".

Was für Schnittstellen könnte es noch geben?

Gruß moccajoghurt


----------



## HoaX (15. Jan 2011)

Halt direkt über Netzwerk, so wie dein FTP auch die Daten bekommt. Dafür gibts die Socket-Klassen bei Java.


----------



## _Andi91 (17. Jan 2011)

Schau dir mal RMI an


----------



## FArt (17. Jan 2011)

Für RPCs bietet Spring Remoting eine sehr einfache Möglichkeit...


----------



## ARadauer (17. Jan 2011)

bzw einfach http.. kleiner http server der Strings empfängt und etwas zurück sendet sind in java wenige zeilen..

wenns aufwändiger wird... spring remoting


----------



## tuxedo (21. Jan 2011)

Neben RMI kannst du dir auch meine Signatur anschauen


----------



## Taggert (24. Jan 2011)

RMI ist doch gar nicht so schön.  Lieber ein bisschen Multithreading und Sockets - gibt es in Java eigentlich inzwischen asynchrone Sockets wie in .Net?  Ich bin zwar kein .Net Fan, aber die asynchronen Sockets sind schnuckelig.


----------



## tuxedo (24. Jan 2011)

Taggert hat gesagt.:


> RMI ist doch gar nicht so schön.



Eben deshalb gibt's ja SIMON 



> Lieber ein bisschen Multithreading und Sockets - gibt es in Java eigentlich inzwischen asynchrone Sockets wie in .Net?  Ich bin zwar kein .Net Fan, aber die asynchronen Sockets sind schnuckelig.



Asynchrone Sockets? Du mein "Non-Blocking IO" ... Logo. Nennt sich Java NIO. Aber das will man nicht wirklich selbst machen. Da kann man so viel falsch machen, dass das Ganze ganz schnell um ein vielfaches langsamer und instabiler läuft als Java IO.
Da nimmt man lieber ein schickes Framework da darauf aufbaut. Wie z.B. Netty oder MINA. Oder, wenn man wirklich sehr nah an den Sockets bleiben will, xSocket (basiert auch auf NIO).

Oder man steigt eben ne Schicht weiter oben ein und nimmt SIMON (welches als Kern MINA nutzt) oder eine der vielen anderen RPC Techniken.

- Alex


----------



## Wildcard (24. Jan 2011)

Ich kann auch noch das Signaling Framework Net4J in den Raum werfen:
Net4j - Eclipsepedia
Damit ist es sehr einfach eigene Protokolle zu entwerfen. Mehrere Protokolle oder Connections können auch gleichzeitig über ein physikalisches Socket laufen, das Framework kümmert sich dabei ums (De-)Multiplexing.


----------

