1

AsynTask 内に受信ルーチンがあります。

                    byte[] message = new byte[1500];
                    s = new DatagramSocket(null);
                    s.setReuseAddress(true);
                    s.bind(new InetSocketAddress(dataclass.getDataclass().GGGPort));
                    p = new DatagramPacket(message, message.length);
                    s.setSoTimeout(500);
                    s.setBroadcast(true);
                    dataclass.getDataclass().setGoOut(true);
                    s.receive(p);

このコードは、Android で UDP ブロードキャスト パケットを受信するのに完璧に機能しますが、問題が 1 つあります。問題: タイムアウト。

この状況で、wifiを無効にしてwifiを有効にすると、すべてが別の時間に機能します...

同じ問題を抱えている人はいますか?

4

1 に答える 1

0

デバイスの接続ステータスが変化するたびに、受信ソケットを再作成して再バインドする必要がある可能性があります。

于 2013-10-07T18:37:15.573 に答える