Java服务器和Android客户端无法连接

时间:2011-10-23 16:18:01

标签: java android tcp

我正在尝试将客户端android连接到app服务器java,但没有工作。这是代码:

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 Server:

 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");
    }
}

任何建议

非常感谢

2 个答案:

答案 0 :(得分:1)

127.0.0.1指向模拟器上的localhost。您必须使用计算机的实际IP地址或10.0.2.2,它指向运行模拟器的计算机上的localhost。

答案 1 :(得分:0)

127.0.0.1表示“此机器”。服务器真的在同一个Android设备(或模拟器)上吗?

如果是,为什么还要烦恼套接字?如果不是,请指定一个真实的地址或名称。

从Android模拟器的角度来看,它托管的计算机是同一台计算机。如果这是服务器运行的位置,请使用其公共IP地址。