android 的Socket 应用测试时,Socket 为Null的问题

本人尝试开发一android应用,客户端为android应用,服务端为一台PC.开发过程中遇到问题.现阶段想完成用户登录界面,尝试通过Socket传递用户登录信息.代码都... 本人尝试开发一android应用, 客户端为android应用, 服务端为一台PC.
开发过程中遇到问题. 现阶段想完成用户登录界面,尝试通过Socket传递用户登录信息.代码都是网上找来的例子,尝试用socket传递用户信息时,程序意外终止.关键代码如下
loginButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
try{

//InetAddress serverAddr = InetAddress.getByName("10.0.2.2");
//网上查找信息时说可以尝试bind, 10.0.2.2 地址,发现问题依旧存在
mSocket = new Socket("192.168.1.3", 12345);
in = new DataInputStream(mSocket.getInputStream());
out = new DataOutputStream(mSocket.getOutputStream());
}
catch (Exception e){
System.out.println(mSocket);
System.out.println("客户端异常:" + e.getMessage());
}
....

尝试打印mSocket的时候,发现mSocket为Null, 求神人指导.
目的就是实现,Android虚拟机AVD上的应用作为客户端,和宿主PC实现socket通信,可以确定的是Android虚拟机ping 10.0.2.2 能够ping通。而且服务器段一直正确运行着呢,并监听着12345端口。图中提示的是Android Studio上的调试信息,虚拟机上当点击登录按钮时提示“很遗憾,AVD停止运行。
展开
 我来答
是你喜欢的可爱dzec5
2015-05-10 · TA获得超过180个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:197万
展开全部
Socket里面的url需要是你的服务器地址的亲,10.0.2.2 代表你本地的服务器也就是127.0.0.1
你需要在其他电脑上试试ping 192.168.1.3:12345 能不能通
一般出现这种问题都是防火墙的问题,你需要在规则中打开ipv4规则的,这个网上都有,你可以百度下
更多追问追答
追问
我查看了iptables为空. 也就是说没有设置规则。
追答
那就设置规则啊,百度经验有的,直到能被其他局域网内主机ping通就可以了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式