簡體   English   中英

Android中的udp連接無法接收數據包

[英]udp connection in android fails to receive packets

我正在嘗試在服務器和android設備之間建立和udp連接。 我已經編寫了服務器和android客戶端部分。 當我在計算機本地主機上啟動服務器時,服務器和模擬器都可以很好地通信。 但是,當我在雲中啟動服務器時,模擬器可以將udp數據包發送到服務器,但無法接收任何數據包。

因此,我首先想到的是,可能存在一些路由問題,這些問題阻止了數據包到達仿真器。 因此,我使用3g連接的手機(三星galaxy s2,ICS)。 但是,同樣的事情再次發生。 我的手機可以發送udp數據包,但無法接收任何數據包。

然后,我認為也許我在雲中的計算機無法發送數據包。 因此,我已經用Wireshark嗅探了數據包,並發現它確實發送/接收了udp數據包。

我已經在stackoverflow中閱讀了許多有關此問題的問題,但我無法提出解決方案。 也許你們幫幫我。 這是服務器和客戶端udp發送/接收我的工作的一部分。 如果您需要更多信息,我隨時准備提供。

提前致謝。

服務器(無需編寫偵聽部分,因為沒有問題)

ClientIPAddress = IncomingPacket.getAddress();
ClientPort = IncomingPacket.getPort();
OutToClientSocket = new DatagramSocket();
DatagramPacket PacketToClient = new DatagramPacket(sendBuffer, sendBuffer.length,     ClientIPAddress, ClientPort);
OutToClientSocket.send(PacketToClient);

客戶端(僅監聽部分)

ServerIP = InetAddress.getByName(MachineName);
DatagramPacket IncomingPacket = new DatagramPacket(buf, buf.length);
MySocket.receive(IncomingPacket);
buf = IncomingPacket.getData();
...

我已經通過@EJP解決了我的問題。 我正在使用一個數據報套接字來監聽數據包,並使用另一個來發送數據包。 兩種操作都必須使用1個套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM