android 做客户端,
PC 做服务端(C#编写),
android 发数据PC端可以收到,但PC端返回的数据android却接收不到,
奇怪的是,完全相同的java socket通信代码,放在android下收不到数据,
建一个pc的java工程,还是这段代码,却可以收到数据?!try {
                                        Socket stSocket = new Socket("192.168.0.101",30000);
stSocket.getOutputStream().write(cmd.getBytes());
stSocket.getOutputStream().flush();
System.out.println("receiving..");
BufferedReader br=new BufferedReader(new InputStreamReader(stSocket.getInputStream()));
String rev;
rev=br.readLine();
System.out.println( "received:"+rev);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Androidsocket通信Java

解决方案 »

  1.   

    你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP: 10.0.0.2,10.0.0.2是模拟器设定的特定ip,是你电脑的别名
      

  2.   

    你要映射一个端口,adb forword tcp:xxxxx tcp:xxxxx,这样才行
      

  3.   

    原因是服务的返回消息结尾需要加“\r\n”android下才能读取到一行信息,只加“\n”的话java程序可以读到,android不行。根本原因是java程序底层运行在windows下,android底层在linux下,两个系统规定的换行符有所不同。