udp广播问题,发送广播后,接收端不能实时接收广播,经常接收不到数据

 public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(new Runnable() {
            @Override
            public void run() {
                createUDP();
            }
        }).start();
        findViewById(R.id.server).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                execuBroadCast();
            }
        });

        findViewById(R.id.client).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                acceptBroadCast();
            }
        });
    }

    //广播接收
        MulticastSocket multicastSocket1 = null;
        InetAddress inetAddress1 = null;
        String str="";

    private void acceptBroadCast() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    multicastSocket1 = new MulticastSocket(BROADCAST_PORT);
                    inetAddress1 = InetAddress.getByName(BROADCAST_IP);
                    multicastSocket1.joinGroup(inetAddress1);
                    byte buf[] = new byte[1024];
                    DatagramPacket dp = null;
                    dp = new DatagramPacket(buf, buf.length, inetAddress1,BROADCAST_PORT);
                    while (true) {
                        multicastSocket1.receive(dp);
                        str = new String(buf, 0, dp.getLength());
                        Log.d("=========", str);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }


    //广播发送
        InetAddress inetAddress = null;
        MulticastSocket multicastSocket = null;
        private static int BROADCAST_PORT = 9899;
        private static String BROADCAST_IP = "224.0.0.1";

        private void createUDP(){
            try {
                inetAddress = InetAddress.getByName(BROADCAST_IP);
                multicastSocket = new MulticastSocket(BROADCAST_PORT);
                multicastSocket.setTimeToLive(1);
                multicastSocket.joinGroup(inetAddress);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        private void execuBroadCast() {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    DatagramPacket dataPacket = null;
                    byte[] data = "hello".getBytes();
                    dataPacket = new DatagramPacket(data, data.length, inetAddress,BROADCAST_PORT);
                    try {
                        multicastSocket.send(dataPacket);
                        System.out.println("ggggggggggggggggg");
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }


}

http://bbs.csdn.net/topics/350213634