2012-10-08 74 views
3

我寫了一個桌面Java程序來與服務器交談,我試圖達到並獲得它的工作。我可以發送和接收UDP數據包。我知道如何將我對android所做的操作移植到端口上。我已經在Android模擬器上搞了好幾天,並且遇到了接收UDP數據包的問題。如果我啓動我的應用程序,建立與服務器的連接,然後重新連接我正在使用的端口,我收到了大約130個數據包,然後沒有任何數據......我使用WireShark確保服務器仍在發送數據包,並且它是。在Android的模擬器上是否有像IP Flood Detectionredir後只接收少量的UDP數據包。 (Android模擬器)

編輯:

拼寫

  • 服務器連接到我開發的計算機連接到一個開關。
  • 服務器響應我從桌面應用程序發送的數據包。
  • 服務器正在將數據包發送到開發者comupters IP地址。
  • 我使用的REDIR命令是「再導向添加UDP:端口:端口」

  • 當我發出命令redir的,我從「10.0.2.2」

    地址獲取〜130包用
  • 我已經試過「亞行轉發UDP:UDP端口:端口」並獲得「不能綁定到插座」從模擬器外
  • 服務器的IP爲「10.10.0.100」

編輯

  • 服務器是不是在模擬器上或其他Android設備
+0

你可以添加更多的細節?服務器是否位於本地網絡中,服務器是否接收設備數據包,服務器向哪個地址發送數據包,您使用了哪些REDIR命令參數? – Luis

+0

服務器連接到我的開發計算機連接到的交換機。服務器正在響應我從桌面應用程序發送的數據包。服務器正在將數據包發送到開發者comupters IP地址。我使用的redir命令是「redir add udp:port:port」。 – Rick

+0

使用該設置,您不會在設備中接收任何UDP數據包,因爲您的開發計算機IP地址中的運營商缺少到開發計算機回送地址。你確定你收到來自設備服務器的任何UDP數據包嗎? – Luis

回答

1

我做了類似的設置試驗,得到了相同的行爲。

aprox後每秒發送一個UDP數據包。在仿真器中運行的接收器停止接收數據包的130個數據包,並且我確認數據包一直在發送。

我已經在使用SDK 10和SDK 15的模擬器中進行了上述測試,兩者都在Intel Accelerated Execution Manager中運行。

它看起來像仿真器重定向功能中的錯誤,或者正如您所建議的那樣,某種類型的網絡防洪功能。

+0

感謝您的幫助。我運行了sudppipe,可以看到它重定向的數據包。我沒有看到應用程序內的任何數據包。 redir將不會綁定到套接字,因爲它已經在使用中。我想我可能不得不擺脫sudppipe設置。我正在使用「sudppipe -x 127.0.0.1端口」。 – Rick

+0

我做了一些測試,看起來像sudppipe始終綁定到本地主機(127.0.0.1)進行輸入,即使您指定了-b選項。它似乎工作,如果你使用不同的端口進出。我將相應地編輯答案。 – Luis

+0

我看到: 「代碼」 serverADDR:severOutputPort - 的PACKET'code」 但沒有在應用程序> 127.0.0.1:deviceInputPort 十六進制值...所以仿真器監聽本地主機的回送地址?它似乎在別處聽着。我會繼續黑客直到我得到結果。謝謝您的幫助。 – Rick

0

我買了一臺Nexus 7,跑這個應用程序,我一直在努力,可以收到3000+的數據包。看起來像模擬器的東西。