2013-04-09 41 views
0

我正在製作一個在它們之間發送和接收數據的服務器/客戶端程序。 該程序在模擬器上運行完美,但是當通過WIFI在真實的Android設備上進行測試時,它無法連接到服務器。服務器/客戶端Android程序無法在真正的Android設備上工作

服務器端

ServerSocket serverSocket = new ServerSocket(44444); 
Socket clientSocket = serverSocket.accept(); 

客戶端

Socket socket = new Socket("192.168.1.2", 44444); 

的問題是不是在發送數據時,它在連接建立。該Android手機沒有看到服務器端!

+0

您是否有錯誤信息? – talnicolas 2013-04-09 13:31:20

+0

沒有。程序正常打開但無法連接。 – 2013-04-09 13:32:57

+0

是的,但您調試過嗎?你必須有某種地方的堆棧跟蹤... – talnicolas 2013-04-09 13:33:54

回答

-1

問題出在您的網絡上。 請確保真實的Android設備和您的服務器(192.168.1.2)位於同一網絡中。

如果這些都在同一個網絡中唯一的,那麼你可以您使用的構造函數,它需要一個字符串主機從yourclient

+0

兩者都在同一網絡中但無法連接! – 2013-04-09 13:34:26

+0

嘗試從Android Play商店安裝Ping應用,並確保您可以通過設備與端口44444進行通信https://play.google.com/store/apps/details?id=com.ulfdittmer.android .ping – 2013-04-09 13:39:47

+0

我認爲您的端口44444未打開該設備。 – 2013-04-09 13:42:38

0

與服務器通信。但是,您提供的是互聯網地址。你必須使用另一個constructor,它接受一個地址作爲參數。

嘗試在客戶端下面的代碼:

Socket socket = new Socket (InetAddress.getByName ("192.168.1.2"), 44444); 
+0

錯誤:構造函數Socket(InetAddress [],int)未定義! – 2013-04-09 13:42:22

+0

糟糕,錯誤的複製粘貼。請參閱上面編輯的方法。 – Shade 2013-04-09 13:43:43

+0

同樣的問題! – 2013-04-09 13:49:21

0

你確定你的服務器都看得到你的智能手機......你可以嘗試將PC連接到WIFI和使用telnet IP端口和驗證您是否可以訪問服務器。

+0

我如何確保服務器對智能手機可見? – 2013-04-09 15:11:58

+0

如果您有電腦,您可以將其連接到WIFI(與智能手機使用的相同),然後使用tcp客戶端嘗試連接到服務器。 – FrancescoAzzola 2013-04-10 07:25:14

0

的Android設備無法檢測 你必須這樣做,首先使您的PC熱點窗口的ad-hoc網絡:

步驟1:打開CMD(管理員特權),並運行以下命令 的Netsh WLAN hostednetwork模式=允許SSID = NAME鍵= PASSWORD

這將使無線網絡連接,熱點 現在運行這個啓動WiFi熱點: 的Netsh WLAN開始hostednetwork

,並停止熱點運行此命令: netsh wlan stop hostednetwork

相關問題