#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());
}