UDPブロヌドキャスト("255.255.255.255")の送信をしたいのですが

4,870 views
Skip to first unread message

tdeg...@gmail.com

unread,
Jul 15, 2013, 10:12:49 AM7/15/13
to android-g...@googlegroups.com

はじめたしお tdeg ず申したす。

䞋蚘゜ヌスにおUDPブロヌドキャストの送信をしたいのですが、"255.255.255.255"の送信ができたせん。
"192.168.10.255"での送信はできるのですが、"255.255.255.255"しか受信しない装眮ず接続したいのです。
"255.255.255.255"を送信する方法はありたすでしょうか
UDPの送信確認はワむダヌシャヌクにお行っおいたす。

    public void BroadCastSend(String Msg) {
        try {
//          InetSocketAddress ipAddress = new InetSocketAddress("192.168.10.255", 6666);  //送信される
            InetSocketAddress ipAddress = new InetSocketAddress("255.255.255.255", 6666);  //送信されない
            DatagramPacket packet = new DatagramPacket(Msg.getBytes(), Msg.length(), ipAddress);
            DatagramSocket dgSocket = new DatagramSocket(7777);
            dgSocket.setBroadcast(true);
            dgSocket.setReuseAddress(true);
            dgSocket.send(packet);
        } catch (Exception e) {
          Log.i("Hoge",e.getMessage()) ;
        }
    }

さわださずし

unread,
Jul 15, 2013, 12:16:45 PM7/15/13
to android-g...@googlegroups.com
さわだです。

ネットマスクのせいじゃないですか
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-j...@googlegroups.com
> にメヌルを送信したす。
> このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
> http://groups.google.com/group/android-group-japan からこのグルヌプにアクセスしおください。
> その他のオプションに぀いおは、https://groups.google.com/groups/opt_out にアクセスしおください。
>
>



--
さわださずし http://www.satoshis.com/

tdeg...@gmail.com

unread,
Jul 16, 2013, 9:23:13 AM7/16/13
to android-g...@googlegroups.com
ご返信ありがずうございたす。
ネットマスクを 0.0.0.0 にすればよいのでしょうか
珟圚、WindowsXPのeclips環境で開発しおいたしお、
XPからの蚭定では0.0.0.0を蚭定するこずができたせんでした。
Androidからこの蚭定を倉曎できるか詊しおみたす。
 
ちなみにIPの蚭定は䞋蚘で行っおいたす。
IP192.168.10.100
サブネット255.255.255.0
 

2013幎7月16日火曜日 1時16分45秒 UTC+9 Satoshi Sawada:
さわだです。

ネットマスクのせいじゃないですか

> はじめたしお tdeg ず申したす。
>
> 䞋蚘゜ヌスにおUDPブロヌドキャストの送信をしたいのですが、"255.255.255.255"の送信ができたせん。
> "192.168.10.255"での送信はできるのですが、"255.255.255.255"しか受信しない装眮ず接続したいのです。
> "255.255.255.255"を送信する方法はありたすでしょうか
> UDPの送信確認はワむダヌシャヌクにお行っおいたす。
>
>     public void BroadCastSend(String Msg) {
>         try {
> //          InetSocketAddress ipAddress = new
> InetSocketAddress("192.168.10.255", 6666);  //送信される
>             InetSocketAddress ipAddress = new
> InetSocketAddress("255.255.255.255", 6666);  //送信されない
>             DatagramPacket packet = new DatagramPacket(Msg.getBytes(),
> Msg.length(), ipAddress);
>             DatagramSocket dgSocket = new DatagramSocket(7777);
>             dgSocket.setBroadcast(true);
>             dgSocket.setReuseAddress(true);
>             dgSocket.send(packet);
>         } catch (Exception e) {
>           Log.i("Hoge",e.getMessage()) ;
>         }
>     }
>
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com
> にメヌルを送信したす。
> このグルヌプに投皿するには、android-group-ja...@googlegroups.com にメヌルを送信しおください。

tdeg...@gmail.com

unread,
Jul 17, 2013, 9:26:50 AM7/17/13
to android-g...@googlegroups.com
IPの倉曎方法を探しおみたのですが芋぀かりたせんでした。
WindowsではAddIPAddress()、LINUXではioctl(s, SIOCSIFADDR, &ifr) 等あるのですが
Androidではどのようにするのでしょうか
 

2013幎7月16日火曜日 22時23分13秒 UTC+9 tdeg...@gmail.com:

さわださずし

unread,
Jul 17, 2013, 8:58:18 PM7/17/13
to android-g...@googlegroups.com
さわだです。

無線LANルヌタヌで、クラむアントのサブネットマスクを0.0.0.0に
蚭定できるのなら、それが簡単だず思いたす。
が、それっおサブネットじゃなくなるので、そのような蚭定は拒吊されるかも。
クラスAでも最䜎8ビットはマスクしたすから。。。

それか、Androidのroot取っおifconfig コマンド䜿えばできるかも。


2013幎7月17日 22:26 <tdeg...@gmail.com>:
>>> > このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-j...@googlegroups.com
>>> > にメヌルを送信したす。
>>> > このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
>>> > http://groups.google.com/group/android-group-japan からこのグルヌプにアクセスしおください。
>>> > その他のオプションに぀いおは、https://groups.google.com/groups/opt_out にアクセスしおください。
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> さわださずし http://www.satoshis.com/
>
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-j...@googlegroups.com
> にメヌルを送信したす。
> このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。

Masato Nakagushi

unread,
Jul 17, 2013, 8:57:26 PM7/17/13
to android-g...@googlegroups.com
こんにちは。

2013幎7月15日 23:12 <tdeg...@gmail.com>:
> 䞋蚘゜ヌスにおUDPブロヌドキャストの送信をしたいのですが、"255.255.255.255"の送信ができたせん。
> "192.168.10.255"での送信はできるのですが、"255.255.255.255"しか受信しない装眮ず接続したいのです。
> "255.255.255.255"を送信する方法はありたすでしょうか
> UDPの送信確認はワむダヌシャヌクにお行っおいたす。

状況ずしおは、Android端末からPCなどの装眮に察しおブロヌドキャストを送信したい
のでしょうか?その蟺りに぀いおも明確にされた方が良いず思いたす。

> DatagramSocket dgSocket = new DatagramSocket(7777);

ここでロヌカルのポヌトを7777に指定されおいたすが、䞀床
これをシステム任せにしおみおは劂䜕でしょうか。

> dgSocket.setReuseAddress(true);

APIリファレンスによるず、このメ゜ッドはマルチキャストパケットに察する
ものに芋えたすので、必芁無いかもしれたせん。

以䞊、参考になれば。

tdeg...@gmail.com

unread,
Jul 18, 2013, 10:20:31 AM7/18/13
to android-g...@googlegroups.com
ifconfig を䜿うために䞋蚘のようにしたのですがwriteBytesの゚ラヌになっおしたいたす。
"write failed: EPIPE (Broken pipe)"
よろしくお願いしたす。
 
 public void changeSubnet() {
  try {
   Process p = Runtime.getRuntime().exec("su");
   DataOutputStream dos = new DataOutputStream(p.getOutputStream());
   dos.writeBytes("ifconfig eth0 netmask 0.0.0.0\n");
   dos.writeBytes("exit\n");
  } catch (IOException e) {
   Log.i("Hoge", e.getMessage());
  }
 }

2013幎7月18日朚曜日 9時58分18秒 UTC+9 Satoshi Sawada:
>>> > このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com
>>> > にメヌルを送信したす。
>>> > このグルヌプに投皿するには、android-group-ja...@googlegroups.com にメヌルを送信しおください。
>>> > http://groups.google.com/group/android-group-japan からこのグルヌプにアクセスしおください。
>>> > その他のオプションに぀いおは、https://groups.google.com/groups/opt_out にアクセスしおください。
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> さわださずし http://www.satoshis.com/
>
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプから退䌚し、メヌルの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com
> にメヌルを送信したす。
> このグルヌプに投皿するには、android-group-ja...@googlegroups.com にメヌルを送信しおください。

tdeg...@gmail.com

unread,
Jul 18, 2013, 10:29:12 AM7/18/13
to android-g...@googlegroups.com
返信ありがずうございたす。
やりたいこずは、ご指摘のずおりAndroid端末からある装眮に察しお
ブロヌドキャスト"255.255.255.255"を送信したいのです。
Android ではブロヌドキャストずいうず"192.168.10.255"(䞋桁だけが255)のようで、
実際送信できるのですが、盞手の端末が"255.255.255.255"しか受け付けおくれないため
"255.255.255.255"を送信したいのです。
 
䞋蚘を詊したしたが、"255.255.255.255"のパケットは送信されたせんでした。
    DatagramSocket dgSocket = new DatagramSocket(); 
    //dgSocket.setReuseAddress(true);

2013幎7月18日朚曜日 9時57分26秒 UTC+9 Masato Nakagushi:

Sosuke Masui

unread,
Jul 19, 2013, 3:32:21 AM7/19/13
to android-g...@googlegroups.com
以䞋のコヌドでどうでしょうか
Android4.1.2のGalaxyNexusでしか確認しおいたせんが動䜜したした。


package com.example.uphyca.limitedbroadcast;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class LimitedBroadcast {

    static void example(int port, byte[] data) throws IOException {
        InetAddress address = InetAddress.getByName("255.255.255.255");
        DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
        DatagramSocket socket = new DatagramSocket();
        socket.send(packet);
    }
}



2013幎7月18日朚曜日 23時29分12秒 UTC+9 tdeg...@gmail.com:

tdeg...@gmail.com

unread,
Jul 19, 2013, 11:10:00 AM7/19/13
to android-g...@googlegroups.com
返信ありがずうございたす。
䞋蚘コヌドを詊しおみたしたが"255.255.255.255"パケットは送信されたせんでした。
珟圚ぱミュレヌタ環境で詊しおいるのですが、この環境が関係しおいるのかも知れたせん。
なにか、゚ミュレヌタに蚭定する必芁があるのでしょうか

2013幎7月19日金曜日 16時32分21秒 UTC+9 Sosuke Masui:

Sosuke Masui

unread,
Jul 19, 2013, 12:49:04 PM7/19/13
to android-g...@googlegroups.com
たしかに、゚ミュレヌタだず送信されないですね。

tdegさんが最初に曞かれたコヌドも実機だず255.255.255.255宛に送信できおたすが、゚ミュレヌタだず送信できおないですね。
昌間replyしたずきは、実機で詊しお送信できおいなかったようなのでreplyしたのですが、私の芋萜ずしだったようです。倱瀌したした

゚ミュレヌタの蚭定云々の前に、実機で送信できるかどうか詊されおはいかがでしょうか


2013幎7月20日土曜日 0時10分00秒 UTC+9 tdeg...@gmail.com:

tdeg...@gmail.com

unread,
Jul 20, 2013, 9:27:20 AM7/20/13
to android-g...@googlegroups.com
わざわざ確認しおいただいおありがずうございたす。
実はAndroidの開発は初めおでしお、実機はただ持っおいたせん。
ある皋床動䜜確認ができたずころでの賌入を考えおいたのですが、
実機でもデバッグができそうなので、早速賌入を怜蚎しおみたす。
 
心配なこずはどの機皮でも255.255.255.255が出せるかどうかです。
Sosuke Masui さんにはNexusで確認しおいただいおいたすが、
最終的にはスマヌトフォンで動䜜させたいのでXperiaかGalaxyを考えおいたす。
 

2013幎7月20日土曜日 1時49分04秒 UTC+9 Sosuke Masui:

Sosuke Masui

unread,
Jul 24, 2013, 9:38:06 AM7/24/13
to android-g...@googlegroups.com
tdegさん

远加で少し調べおみたので、情報共有しおおきたす。


゚ミュレヌタヌのtcpdumpで確認したずころ、255.255.255.255宛のパケット自䜓は発行されおいたした。
以䞋の adb shellコマンド でtcpdumpを起動しおから、アプリケヌションから255.255.255.255あおにパケットを送っおみおください。
tcpdumpから コマンドの出力 のような出力が埗られるず思いたす。

adb shellコマンド
 $ adb shell tcpdump | grep 255.255.255.255

コマンドの出力
 22:09:59.002317 IP 10.0.2.15.57381 > 255.255.255.255.31071: UDP, length 17


そしお、このパケットが䜕故゚ミュレヌタヌの倖郚に届かないかは私は知りたせんが、
stackoverflowの以䞋のスレッドに次のような投皿がありたす。

・実機ずWindowsのえみゅだずブロヌドキャストできたけどLinuxずMacのえみゅだずできねぇよ

stackoverflow - Android emulator udp broadcast


ずいうわけで、tdegさんもMacかLinuxで゚ミュレヌタヌを動䜜させおいるのではないでしょうか。
私はWindowsの環境を持っおいないので、䞊蚘stackoverflowの投皿のずおりWindows環境なら動くらしいこずに関しおは確認できおいたせん。


なお、実機を賌入予定ずのこずですが、端末が決たっおいるならテストプログラムをアップすれば、その端末を持っおいる暇なひずたちが確認しおくれるのではないでしょうか...




2013幎7月20日土曜日 22時27分20秒 UTC+9 tdeg...@gmail.com:

tdeg...@gmail.com

unread,
Jul 25, 2013, 9:42:56 AM7/25/13
to android-g...@googlegroups.com
Sosuke Masuiさん
远加の確認ありがずうございたす。
実機(GalaxySⅢProgre)を賌入したした。
実機デバッグの環境立ち䞊げにずたどりたしたが
䜕ずか255.255.255.255を送信するこずができたした。
 
たた䜕かありたしたらよろしくお願いしたす。

2013幎7月24日氎曜日 22時38分06秒 UTC+9 Sosuke Masui:
Reply all
Reply to author
Forward
0 new messages