我有 4 部安卓手机(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());
}