Телефон Android не может принимать UDP-трансляцию с другого устройства или IOS

#android #sockets #udp

Вопрос:

У меня есть 4 телефона Android(Pixel ,Samsung,HTC), я пытался отправить трансляцию UDP на другой телефон , это сработало , другой телефон получит сообщение одновременно.

Но когда IOS отправляет трансляцию , мой Android не может получать от них никаких сообщений , но они могут получать сообщения от меня.

пожалуйста, помогите.

Это мой код.

UDP-сервер :

 try {

            socket = new DatagramSocket(8082);

            socket.setBroadcast(true);
            tvUdpServer.setText("UDP SERVER  PORT : 8082");
            tvMsg.setText(rcvMsg);
            while (true){
                byte[] revcBuf = new byte[15000];
                DatagramPacket packet = new DatagramPacket(revcBuf,revcBuf.length);

                socket.receive(packet);

                String data = new String(packet.getData()).trim();

                if (rcvMsg.isEmpty()){
                    rcvMsg = "receive message : " data;
                }else {
                    rcvMsg = rcvMsg   "nreceive message : " data;
                }


                showData(rcvMsg);
                Log.i("Michael","receive message : " data);
            }


        }catch (Exception e){
            e.printStackTrace();
            
        }
 

UDP-клиент :

 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    try {
        //Open a random port to send the package
        DatagramSocket socket = new DatagramSocket();
        socket.setBroadcast(true);
        byte[] sendData = messageStr.getBytes();
        DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, getBroadcastAddress(context), Config.PORT);
        socket.send(sendPacket);
        Log.i(Config.TAG, "Broadcast packet sent to: "   getBroadcastAddress(context).getHostAddress());
    } catch (IOException e) {
        Log.e(Config.TAG, "IOException: "   e.getMessage());
    }