繁体   English   中英

解码UDP消息(从Erlang到Java)

[英]Decode UDP message (from Erlang to Java)

我只是试图通过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控制台中输出的内容?

在Erlang端尝试发送二进制而不是string:

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

在Java方面:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM