0
我的Android應用程序在s.receive(p)處停頓,因爲它沒有收到任何數據包。Android接收來自相同IP地址的UDP數據包
我有X平面將數據包發送到同一IP地址中的隨機端口49059作爲我希望接收這些數據包的Android平板電腦。這是因爲他們正在運行相同的連接。 X-Plane使用端口49000發送數據包並使用49001接收數據包。我想不出什麼是錯的。我無法在Android平板電腦上使用3G,這是我可以測試的唯一互聯網連接。此外,清單中還啓用了所有互聯網和wifi權限。有任何想法嗎?這裏的代碼:
byte[] bar = new byte[1024];
DatagramPacket p = new DatagramPacket(bar, bar.length);
DatagramSocket s = new DatagramSocket(49059);
s.setSoTimeout(30000);
s.receive(p);
android平板電腦不需要發回數據包,所以它只接收。是的,它現在在UI線程中,只是爲了確保它的工作。它雖然沒有收到數據包,因爲我已經在s.receive(p)之後放了一個Log.d,但它沒有到達那裏。 「凍結」的意思是它在接收函數上停頓。 – lespommes
我的意思是確保數據包的來源實際上是發送數據包。 而且是接收數據包的緩衝區大小(在你的情況下爲1024)是否足夠?另外,也請嘗試不同的端口,以防萬一。 如果你能澄清你的意思是「在相同的IP」 – Alabhya
得到它的工作,謝謝你的幫助,Wireshark幫助確定問題(錯誤的IP),這將是有益的。 – lespommes