私は、UDPソケットを介して送信されたデータを受信して画面に出力するJavaプログラムを作成しました。受信したデータは、MATLABを使用してデータを送信する別のコンピュータから送信されます。私は確かに、matlabのシミュレーションはすべて、2倍のデータ型で2の定数値をとり、バイトパッカーを使ってデータをパックし、指定されたIPアドレスとポートにUDPブロックを介して送信するためです。私は同時にしかし、常に印刷された値がネットワーク経由で受信されるダブルタイプのUDPパケットデータを取得するにはどうすればよいですか?
4.7783097267364807 E -299で、データがうまく受信された1024
長さのバイト配列としてデータパケットを受信し、別のPC上でJavaコードを実行します。
私のコードがパケットから正しく目的のデータを取得しているか、ByteBuffer.wrap(.....)。getDouble()関数が正しく使用されているかどうかはわかりません。すべてのヘルプは大幅に
import java.io.*;
import java.net.*;
import java.nio.ByteBuffer;
class receiver
{
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(1024);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
System.out.println("Listening...");
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
double data = ByteBuffer.wrap(receiveData).getDouble();
System.out.println(data);
}
}
}
バイトパッカーを使用してデータをパックし、受信したデータグラムの最初の8または16バイトの16進ダンプを指定します。 – EJP