Androidクライアントがマルチキャスト(UDP)を使用してIPを交換するチャットアプリケーションを開発しています。Androidデバイスがマルチキャストパッケージを受信していない
すべてのデバイスは、1つの別のスレッドで複数のクライアント(このアプリケーションを実行するすべてのデバイス)にIPを送信します。これらのマルチキャストパケットを受信する別の受信側スレッドが存在します。ここに私のコードです。
//マルチキャストコード。 //レシーバーコード
MulticastSocket socket = new MulticastSocket(9999);
InetAddress group = InetAddress.getByName("224.0.0.1");
socket.joinGroup(group);
DatagramPacket packet;
byte[] buf = new byte[256];
byte b = 'x'; //just a separator for time being
Arrays.fill(buf,b);
packet = new DatagramPacket(buf, buf.length);
String received= "";
while(received!=null)
{
socket.receive(packet);
received = new String(packet.getData());
received = received.substring(0,received.indexOf('x'));
this.setIp(received);
System.out.println("Address: " + received);
}
socket.leaveGroup(group);
socket.close();
DatagramSocket socket = new DatagramSocket(9898);
byte buff[] = ip.getBytes();
DatagramPacket packet = new DatagramPacket(buff, buff.length, InetAddress.getByName("224.0.0.1"),9999);
socket.send(packet);
socket.close();
問題は、すべてのデバイスは、自身のアドレスを出力しています。それは他のマルチキャストパッケージを聞くことはないようです(私は他のipも同様に印刷するべきです)。私はまた、それが関連しているかどうか確かでない下のログを取得します。
11-04 23:56:17.985: I/OSNetworkSystem(603): mcastAddDropMembership interfaceIndex=0
助けてください。
これが唯一の無線LANマルチキャストパケットのためであるように見えます。私はインターネット経由でマルチキャストしています(通常のAPN、WIFIは使用しません)。それはまだ動作しますか? –
私はAndroid上では可能ではないと思います。答えは[こちら](http://stackoverflow.com/questions/3068497/udp-multicast-over-the-internet)が役立つかどうかをご覧ください。 – yorkw
ありがとう私は見てみましょう。 –