2011-10-23 35 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