Java how to parse a double value from received UDP bytes?

匆匆过客 提交于 2020-01-05 03:48:10

问题


int port = 18000;
DatagramSocket serverSocket = new DatagramSocket(port);
byte[] receiveData = new byte[8];

System.out.println("Server Listing on Port: "+port);
String x;

while (true){
  DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  serverSocket.receive(receivePacket);

?? Double x = new Doulbe.parseBytes(recievedPacket)


回答1:


You could use ByteBuffer

Double x = ByteBuffer.wrap(receiveData).getDouble();



回答2:


Use java.nio.ByteBuffer

Something like:

private static ByteBuffer buffer = ByteBuffer.allocate(8);    

public static byte[] encodeDouble(double x) {
    buffer.clear();
    buffer.putDouble(0, x);
    return buffer.array();
}

public static double decodeDouble(byte[] bytes) {
    buffer.clear();
    buffer.put(bytes);
    buffer.flip(); 
    return buffer.getDouble();
}    



回答3:


ByteBuffer.wrap(receiveData.getData()).getDouble();



回答4:


java.io.DataInputStream.readDouble()


来源:https://stackoverflow.com/questions/14071070/java-how-to-parse-a-double-value-from-received-udp-bytes

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!