Frage

Ich mache eine Anwendung in Erlang, mit einer grafischen Benutzeroberfläche in Java. Ich habe es geschafft, eine Verbindung zwischen der zu Sprachen etablieren, aber jetzt brauche ich, um (i guess) eine Nachricht von Java zu Erlang senden, jedes Mal wenn ich beispiels eine Taste drücken.

Ist das der richtige Weg zu gehen?

Wie würde eine solche Nachricht aus?

Ich habe ein paar gute Seiten über diese Form der Integration zu finden, aber ich fühle mich wie im nicht immer alles.

http://www.trapexit.org/How_to_communicate_java_and_erlang

War es hilfreich?

Lösung

Wenn jinterface zu kompliziert ist, einfach das Paket Option auf open_port verwenden könnte und Verwendung

byte[] in_buf = new byte[256];
byte[] out_buf = new byte[256];
int in_count = System.in.read ();
int offset = 0; 
do
    {
        int c = System.in.read (in_buf, offset, in_count-offset);
        offset += c;
    }
while (offset < in_count);

Zum Lesen Paket von erlang und Schreib Verwendung:

System.out.write(out_count);
System.out.write(out_buf, 0, out_count);

Auf der erlang Seite würde dies mit übereinstimmen

open_port({spawn, "<path-to-java> -cp <classpath> your-java-prog", 
          [{packet, 1}]).

Wenn Sie größere Pakete Verwendung {Paket, 2} oder {Paket, 4} und die Java anzupassen. Innerhalb der Pakete können Sie was auch immer Protokoll Sie wie auf beiden Seiten ausgeführt werden.

Andere Tipps

Neben der klassischen Java-Erlang-Kommunikation über OTP jinterface können Sie solche Methoden erforschen, wie:

 - thrift
 - ice from zeroC (no official erlang binding)
 - maybe two http servers on both sides (I like this approach) 
 - protocol buffers (rather not, it is better for larger data transfers)

Sie müssen die Form des Verkehrs lernen und die beste Lösung zu wählen. Jinterface ist nicht so schlecht, tho .. (hier ist offizieller doc: http: // www.erlang.org/doc/apps/jinterface/jinterface_users_guide.html )

Ich arbeite an einer Anwendung, ähnlich wie bei Ihnen: C ++ GUI und Erlang-Server. Ich verwende TCP Sockets Austausch von Nachrichten zwischen dem GUI und Server und Server-Muster Erlang für Anfragen Handhabung (I kann mehr als eine GUI auf den Server zur gleichen Zeit angeschlossen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top