将UDP数据包从Matlab发送到Java

时间:2014-05-26 19:28:18

标签: java matlab udp double bytearray

我正在尝试将两个双重值作为UDP数据包从Matlab发送到Java程序,但我无法同时访问它们。任何人都建议我如何实现这一点。

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.io.*;
import java.nio.*;
import java.lang.*;


public class UDPReceive {
  public static void main(String args[]) {
    try {
      int port = 25001;

      // Create a socket to listen on the port.
      DatagramSocket dsocket = new DatagramSocket(port);

      byte[] buffer = new byte[2048];

      // Create a packet to receive data into the buffer
      DatagramPacket packet = new DatagramPacket(buffer, buffer.length);


      while (true) {

        dsocket.receive(packet);


        String msg = new String(buffer, 0, packet.getLength());
        Double x = ByteBuffer.wrap(buffer).getDouble();


        System.out.println(packet.getAddress().getHostName() + ": "
             +" "+x+" ");

        // Reset the length of the packet before reusing it.
        packet.setLength(buffer.length);
      }
    } catch (Exception e) {
      System.err.println(e);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

UDP数据包不是100%成功。您的数据包很可能会迟到甚至永远不会到来。你的问题几乎可以由任何事情引起。

如果您想要保证连接,请尝试使用TCP。以速度为代价,TCP更加可靠。