Pregunta

Estoy haciendo una aplicación en Erlang, con una interfaz gráfica de usuario en Java. Me las he arreglado para establecer una conexión entre el de idiomas, pero ahora tengo que (supongo) envía un mensaje de Java a Erlang, por ejemplo cada vez que pulse un botón.

Es que el camino correcto a seguir?

¿Cómo sería una mirada mensaje?

He encontrado algunos sitios buenas de esta forma de integración, pero me siento como im no conseguir todo.

http://www.trapexit.org/How_to_communicate_java_and_erlang

¿Fue útil?

Solución

Si jinterface es demasiado complicado que sólo podría utilizar la opción de paquetes en open_port y el 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);

Para leer los paquetes de Erlang y para el uso de escritura:

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

En el lado Erlang esto coincidiría con

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

Si necesita el uso de paquetes paquetes más grandes {2} o {paquete, 4} y adaptar el java. Dentro de los paquetes puede ejecutar lo que el protocolo como en ambos lados.

Otros consejos

Además de la comunicación clásica de Java-Erlang a través de OTP jinterface se puede investigar tales métodos como:

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

Usted necesita aprender la forma de su tráfico y elegir la mejor solución. Jinterface no es tan malo, aunque .. (aquí es doc oficial: http: // www.erlang.org/doc/apps/jinterface/jinterface_users_guide.html )

Estoy trabajando en una aplicación similar a la suya: C ++ interfaz gráfica de usuario y el servidor de Erlang. Yo uso de sockets TCP a los mensajes de cambio entre la interfaz gráfica de usuario y el servidor, y los patrones de servidor de Erlang para el manejo de las solicitudes (es posible que tenga más de una interfaz gráfica de usuario conectado al servidor al mismo tiempo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top