有关android Socket编程 在两个模拟器中实现
转载请注明:来自http://blog.csdn.net/soulscarrier
1.打开两个模拟器:
在命令行中定位到SDk的tools下面,输入emulator -data foo 启动两个模拟器。
2.确定其中一个作为服务器:
需要让android模拟器作为服务器之前检测两个模拟器是否正常其命令语句:adb devices 之后在把其中一个设置为服务器。其命令行语句为:telnet localhost +模拟器的名称例如:telnet localhost 5554 :中的“5554”即为模拟器的名称。显示“OK”之后继续执行一下语句:redir add tcp:8192:8191
3.执行服务器端和客户端代码:
server:
public class server extends Activity {
public static final String SERVERIP = "10.0.2.15";//这个地址其实没有用到
public static final int SERVERPORT = 8191; //注意这里和上面重定向的配置是有关系的。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
ServerSocket serverSocket = new ServerSocket(SERVERPORT);
while (true) {
Socket client = serverSocket.accept();
System.out.println("S: Receiving...\n"+client.getInetAddress());
client.getInetAddress();
}
}catch(Exception e) {
System.out.println("S: Error");
e.printStackTrace();
}
}
}
client:
public class client extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Socket socket = new Socket("10.0.2.2", 8192);//注意这里也是和上面重定向的配置是有关系的。而且这里的地址必须是10.0.2.2
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注意:两个程序的AndroidManifest.xml都必须加上下面这个权限:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。