Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过UDP数据包将double从matlab发送到java_Java_Matlab_Udp_Simulink - Fatal编程技术网

通过UDP数据包将double从matlab发送到java

通过UDP数据包将double从matlab发送到java,java,matlab,udp,simulink,Java,Matlab,Udp,Simulink,我正在尝试将Double从Matlab(Simulink)发送到java。 这是我的代码: public static void main(String[] args) throws SocketException, UnknownHostException, IOException { DatagramSocket socket = new DatagramSocket(25000); byte[] buf = new byte[512]; DatagramPacket packet =

我正在尝试将Double从Matlab(Simulink)发送到java。 这是我的代码:

 public static void main(String[] args) throws SocketException, UnknownHostException, IOException {

DatagramSocket socket = new DatagramSocket(25000);
byte[] buf = new byte[512];
DatagramPacket packet = new DatagramPacket(buf, buf.length);

while (true) {
   socket.receive(packet);
   String msg = new String(buf, 0, packet.getLength());
   Double x = ByteBuffer.wrap(buf).getDouble();
   System.out.println(x);
   packet.setLength(buf.length);
      }
 }

我得到了一些值,但它们真的没有意义…

很可能您发送的是
double
s作为little endian,但ByteBuffer假设“网络顺序”是big endian

试一试


注意:UCP是有损的,因此某些数据包将丢失。

您选择UDP数据报级别的任何特定原因。
DatagramSocket socket = new DatagramSocket(25000);
byte[] buf = new byte[512];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
DoubleBuffer db = ByteBuffer.wrap(buf).order(ByteOrder.LITTLE_ENDIAN).asDoubleBuffer();

while (true) {
    socket.receive(packet);
    db.limit(packet.getLength() / Double.BYTES);
    double x = db.get(0);
    System.out.println(x);
}