次のコードは android で試行されましたが、送信者 (デスクトップ アプリ) と Android アプリの両方が同じネットワーク上にあることを意味する、直接 WI-FI を使用してデータを受信しません。送信アプリは、WI-FI タブレットの IP アドレスを認識し、そのアドレスにデータを送信します。
ただし、次のコードは、スタンドアロンの Java アプリケーションとして実行すると問題なく動作します。受信コードは InetAddress アドレスを使用しません。Androidで必要ですか。誰かがWI-FI経由でudpデータを受信する例を投稿できますか.
送信者は、タブレットの IP アドレスを知っているタブレットにデータを送信します。送信者と受信者の両方が同じポートを使用しています。
データ パケットを取得し、データ パケットからコンテンツを取得しようとしています。送信者に何もエコーバックしていません。送信者に何かをエコー バックする必要がありますか。また、WI-FIマネージャーが必要ですか?
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class NetworkReceiver {
static boolean isFinish = false;
try {
DatagramSocket s = new DatagramSocket(2010);
System.out.println("setting up port");
byte[] data = new byte[12];
while (!isFinish)
{
System.out.println("creating datagram");
DatagramPacket p = new DatagramPacket(data, data.length);
s.receive(p);
System.out.println("got packet");
ByteBuffer bb = ByteBuffer.allocate(12).order(ByteOrder.LITTLE_ENDIAN);
bb.put(data);
bb.rewind();
System.out.println(bb.getFloat());
System.out.println(bb.getFloat());
System.out.println(bb.getFloat());
}
} catch (IOException e) {
e.printStackTrace();
}
}