2011-08-25 57 views
1

我想在android中編程一個服務器/客戶端應用程序。 我的電腦和我的android手機上的客戶端有一個服務器類。 所有權限都可以。 下面是客戶端:Android中的WiFi網絡編程

 try { 
     mysocket = new Socket("My PC IP Address", 4444); 
    } catch (UnknownHostException e) {... 
    } catch (IOException e) {... 
    } 

這裏是服務器:

 try { 
     myServerSocket = new ServerSocket(4444); 
    } catch (IOException e) {... 
    } 

    Socket clientSocket = null; 
    try { 
     clientSocket = serverSocket.accept(); 
     System.out.println("Connection Established."); 
    } catch (IOException e) { 
    } 

我使用我的電腦「Connectify的」計劃有一個(虛擬)接入點,使得我的手機連接到這一點。 但是,當我嘗試連接到我的android應用程序中的服務器時,它掛起,然後拋出超時異常。

+1

確保您嘗試連接到PC的「connectify」IP地址,該地址可能與正常IP地址不同。 –

+0

我怎樣才能得到它的IP? – Matrix

+0

從connectify配置控制檯。或者從ifconfig(linux)或ipconfig/all(windows)之類的東西。尋找一個只有在connectify運行時纔會出現的額外接口。如果你能得到手機的wifi地址,你需要一個與電話位於同一子網的電腦,而不是與上游電纜調制解調器進行通話的電腦。 –

回答

1

此代碼看起來不錯。

你確定Connectify工作正常嗎? 您應該嘗試使用兩個不同的進程(作爲服務器作爲獨立客戶端和Android模擬器中的客戶端)運行您在PC上構建的服務器和客戶端。

如果它從localhost正常工作到localhost:4444,則連接是問題的原因,而不是您的代碼。否則,你會很容易在你的代碼中發現錯誤。