我只是尝试通过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控制台中输出的内容?
答案 0 :(得分:0)
gen_udp:send(Socket, {127,0,0,1},11001, <<"yeah!">>).
在java方面:
byte[] b1 = new byte[] {#your byte array};
String s2 = new String(b1);
这会将二进制数据解析为字符串。