2011-12-17 205 views
2

我已經能夠建立我的客戶端/服務器程序,以便服務器在PC上運行,並在Android上運行客戶端。仿真器或設備。 服務器從客戶端接收數據,但客戶端不接收來自服務器的數據(所有UDP)。儘管服務器正在從recvfrom獲取客戶端的地址。 我想讓它在Android模擬器和Android設備(我的手機)中都能正常工作。 我讀到Android模擬器有一個虛擬路由器。我試圖在服務器的同一臺計算機上運行ip 10.0.2.2,但這並沒有解決問題。 客戶端和服務器之間存在溝通,這只是一方面。 任何我想念? 我在Android的JNI \ C++上使用Berkley套接字,而在PC服務器上使用winsock2。PC服務器,Android客戶端。 UDP。客戶端不接收來自服務器的數據包

+0

Windows服務器是否有路由到您的Android設備? – fge 2011-12-17 23:41:38

+0

我發現數據包嗅探Android模擬器確實收到UDP數據包。但由於它有一個虛擬路由器,這些數據包永遠不會到達我的Android應用程序。 我不確定設備。 – user1097185 2011-12-18 10:28:16

+0

你的android虛擬設備上有telnet嗎?嘗試和'telnet服務器anopenport'並看看連接是否建立。 – fge 2011-12-18 10:41:58

回答

0

編輯:

我能夠使它工作!所以UDP可以在Android上以兩種方式工作! 問題是,winsock2上的select有第一個未使用的參數,而在linux \ Android上它被使用並且被稱爲nfds。發送NULL到該參數(就像我在winsock2中那樣),基本上使select始終返回0.

感謝您的幫助fge。

+0

你是如何連接Android設備和PC的?是通過wif還是usb繫繩?如果它是通過無線網絡它是無線繫繩? – Zax 2013-03-20 08:10:50

+1

Zak,PC與Lan連接到路由器。手機只是使用WiFi連接到相同的路由器。任何有效的TCP \ IP網絡都可以。 – user1097185 2013-03-20 19:21:56

0

我想知道如果你會發佈一個鏈接到android主題的udp數據包的源代碼,有很多問題沒有簡單的答案。我自己找不到一個簡單的udp數據包從PC發送到android的程序。