问题
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