0

私はUDPブロードキャストについて多くの知識を持っていません。

インターネットでいくつかの例を調べましたが、頭を悩ませていました。

私がする必要があるのは、UDP ブロードキャスト接続を作成し、パケットを送受信することです。

さらに、いくつかの URL または IP アドレスにも ping を実行します。

誰でも解決策を提供できますか?

良い例が考えられます!

4

1 に答える 1

1

ここに画像の説明を入力

ブロードキャスト アドレスの取得

Wi-Fi マネージャーにアクセスして DHCP 情報を取得し、そこからブロードキャスト アドレスを作成する必要があります。

InetAddress getBroadcastAddress() throws IOException {
    WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
    DhcpInfo dhcp = wifi.getDhcpInfo();
    // handle null somehow
int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
  quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);

}

UDP ブロードキャスト パケットの送受信

ブロードキャスト アドレスを作成したら、通常どおりに動作します。次のコードは、文字列データをブロードキャストで送信し、応答を待ちます。

DatagramSocket socket = new DatagramSocket(PORT);
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(),
    getBroadcastAddress(), DISCOVERY_PORT);
socket.send(packet);

byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);

ソース: http://code.google.com/p/boxeeremote/downloads/list

http://www.helloandroid.com/tutorials/simple-udp-communication-example

http://sourcecodemania.com/udp-datagram-sockets-in-java/

于 2013-08-27T06:23:01.693 に答える