我编写了一个Android应用,该应用在UDP端口5150上侦听,以从连接到同一wifi路由器的设备接收编码的音频流。但是,对receive()方法的调用会被无限期阻止,并且不会接收任何数据。
int FRAME_SIZE = 480;
byte[] udpBuffer = new byte[FRAME_SIZE];
DatagramSocket socket;
socket = new DatagramSocket(5150);
datagramPacket = new DatagramPacket(udpBuffer, FRAME_SIZE);
System.out.println("Starting UDP listener");
for(;;){
socket.receive(datagramPacket);
System.out.println("receiving UDP data");
}
我已设置以下权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
不接收任何UDP数据的原因可能是什么?
答案 0 :(得分:-1)
该问题是由于设备以相反的顺序返回的IP地址。结果,我发送给服务器的设备IP错误,导致服务器无法将数据发送到错误的目的地。解决此问题后,我可以接收数据。
谢谢大家的支持。