解码UDP消息(从Erlang到Java)

时间:2014-06-06 10:40:02

标签: java erlang udp

我只是尝试通过UDP从Erlang服务器向Java客户端发送消息。现在我想知道如何将这条消息解释为有用的东西。

这是我在Erlang中写的:

{ok, Socket} = gen_udp:open(8789, [binary, {active, true}]).
gen_udp:send(Socket, {127,0,0,1},11001, "yeah!").

这是我的Java代码:

公共类服务器{

private DatagramSocket socket;
private byte[] buffer;

public Server() {
    try {
        socket = new DatagramSocket(11001);
    } catch (SocketException e) {
        e.printStackTrace();
    }

    buffer = new byte[65508];
}

public void receivePackage() {
    try {

        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
        socket.receive(packet);

        byte[] buffer = packet.getData();

        System.out.println(buffer);

    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

如何处理字节缓冲区并将其转换为可以在Java控制台中输出的内容?

1 个答案:

答案 0 :(得分:0)

在Erlang方面尝试发送 二进制而不是字符串:

gen_udp:send(Socket, {127,0,0,1},11001, <<"yeah!">>).

在java方面:

byte[] b1 = new byte[] {#your byte array};
String s2 = new String(b1);

这会将二进制数据解析为字符串。