2011-10-23 40 views
0

我想連接到應用服務器Java的客戶端Android,但沒有工作。這是代碼:Java服務器和Android客戶端不會連接

Android客戶端;

_cb_led1.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     Socket mySocket = new Socket("127.0.0.1", 9090); 
     PrintStream p = new PrintStream(mySocket.getOutputStream()); 
     p.println("Mensaje"); 
    } 
}); 

Java服務器:

s = new ServerSocket(9090); 
sc = s.accept(); 
System.out.println("Conexión establecida"); 
b = new BufferedReader(new InputStreamReader (sc.getInputStream())); 
while (true) 
{ 
     mensaje = b.readLine(); 
     System.out.println(mensaje); 
    } 
     b.close(); 

     sc.close(); 
     s.close(); 
    } 
    catch (IOException e) 
    { 
     System.out.println("No puedo crear el socket"); 
    } 
} 

任何建議

非常感謝你

+0

定義「沒有工作」。我們沒有ESP。 –

+0

Android中的localhost不會嘗試連接到它本身嗎?見[這篇文章](http://stackoverflow.com/questions/2301560/java-net-connectexception-127-0-0-18080-an-android-emulator)。 –

+0

你會得到什麼樣的錯誤? – Lycha

回答

0

127.0.0.1意思是 「本機」。服務器是否真的在同一個Android設備(或模擬器)上?

如果是這樣,爲什麼還要插座連接?如果不是,請指定一個真實的地址或名稱。

從Android模擬器的角度來看,它託管的計算機是而不是同一臺機器。如果這是服務器正在運行的地方,請使用其公開的IP地址。

+0

服務器與客戶端(模擬器和連接器)在同一臺機器上,因爲這只是一個測試。我試圖使用公共IP,沒有連接建立THX。 – Jjreina

+0

如果有效,請點擊左側的複選標記接受答案。 TX。 –

+0

對不起,但沒有工作 – Jjreina

1

127.0.0.1指向模擬器上的localhost。您必須使用計算機的實際IP地址或10.0.2.2,它指向運行仿真器的計算機上的本地主機。

+0

沒有真正的IP連接。謝謝 – Jjreina

+1

更多檢查[使用Android模擬器:網絡地址空間](http://developer.android.com/guide/developing/devices/emulator.html#networkaddresses) –

+0

謝謝菲利普我一直在尋找 – Kristian