Domanda

sto facendo un'applicazione in Erlang, con una GUI in Java. Sono riuscito a stabilire una connessione tra il alle lingue, ma ora ho bisogno di (credo) invia un messaggio da Java a Erlang, ogni volta che ho per esempio premere un pulsante.

E 'questo il modo giusto per andare?

Come sarebbe un tale sguardo messaggio?

Ho trovato alcuni siti buone di questa forma di integrazione, ma mi sento come im non ottenere tutto.

http://www.trapexit.org/How_to_communicate_java_and_erlang

È stato utile?

Soluzione

Se jinterface è troppo complicato si potrebbe anche utilizzare l'opzione pacchetto su open_port e l'uso

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);

Per leggere i pacchetti da Erlang e all'uso di scrittura:

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

Sul lato erlang questo sarebbe partita con

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

Se avete bisogno di pacchetti di dimensioni maggiori uso {pacchetto, 2} o {pacchetto, 4} e adattare il java. All'interno dei pacchetti è possibile eseguire qualsiasi protocollo ti piace su entrambi i lati.

Altri suggerimenti

Oltre classico comunicazione Java-Erlang tramite jinterface OTP è possibile la ricerca tali metodi come:

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

È necessario imparare la forma del vostro traffico e scegliere la soluzione migliore. Jinterface non è così male, tho .. (qui è doc ufficiale: http: // www.erlang.org/doc/apps/jinterface/jinterface_users_guide.html )

Sto lavorando su un'applicazione simile al vostro: C ++ GUI e server di Erlang. Io uso socket TCP per i messaggi di cambio tra l'interfaccia grafica e il server, ed i modelli di server Erlang per la gestione delle richieste (io possa avere più di una GUI collegato al server, allo stesso tempo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top