1
JavaのX-Plane 12からUDPストリームを読み込もうとしています。 これは私がしようとするものである:X-Planeからデータを取得するためのJava(Android)のUDPクライアント12
public class EchoClient {
@Test
public void echo() throws IOException {
DatagramSocket socket;
InetAddress address;
byte[] buf;
socket = new DatagramSocket();
address = InetAddress.getByName("localhost");
String msg = "TEST";
buf = msg.getBytes();
DatagramPacket packet
= new DatagramPacket(buf, buf.length, address, 49000);
socket.send(packet);
packet = new DatagramPacket(buf, buf.length);
System.out.println("hi there");
while(true) {
socket.receive(packet); // it "stops" here... without an error
String received = new String(
packet.getData(), 0, packet.getLength());
System.out.println(received);
}
}}
Xプレーンが実行されているとUDPオプションがアクティブになっている - しかし、私のプログラムは、コンソール上に印刷何もしない...それは(しばらく真)永遠runnigさ
なぜブロックされていますか? X-Planeが動作していて、UDPソケットがポート49000上で動作しています - パケットがドロップされていますか? O_o durka durkを落とさないでください!どこに問題がありますか? – Suisse
センドは受信前に発生します。誰にも送ることはできません。 新しいスレッドにlisten whileループを入れてみてください。これはsocket.send()を呼び出す前に初期化されています。 –