关于安卓手机做客户端pc做服务器进行Socket通信出现问题的解决案方

纠结ing

学习是一件需要身体力行的事情,有些东西你理念看的多么娴熟,到自己亲自上手,不经意间就出现几个你无法逃避的错误,这时候,教科书上没告诉你这种错误的解决方法,只能自己不断尝试,不断失败,到最后发现其实解决的方法很简单,但你花费了很长时间,这时你是不是觉得很不值。其实那是值得的,这种经历是你看再多书也无法学到的能力。

现在说说我的那个坎吧,最近想做个安卓通信那块的,代码很简单,但pc上开两个java Application是能通信的,但在pc开服务器,安卓手机上装个客户端,却在连接的时候闪退,不知道你有咩有碰到在安卓通信编程这方面的问题呢。当时我就纠结了,不断网上找,什么谷歌百度都拿出来,阅遍千页搜索结果,都是相同的,差不多都是下面那几句:

//服务端
//创建一个ServerSocket,用于监听客户端Socket的连接请求
ServerSocket ss = new ServerSocket(30000);
//采用循环不断接受来自客户端的请求
while (true){
//每当接受到客户端Socket的请求,服务器端也对应产生一个Socket
Socket s = ss.accept();
//下面就可以使用Socket进行通信了
...
}
//客户端
//创建连接到服务器、30000端口的Socket
Socket s = new Socket("192.168.2.214" , 30000);
//下面就可以使用Socket进行通信了
...

然后加些其他东西,不如界面啊,存储啊。。当时我就隐隐怀疑好像是服务器ip的问题,但是网上例子的ip都是直接写的,我就想,难道自己测试的时候的Ip也能固定?当然ip变化,程序员能直接在源码上改的。然后我就没头绪就找资料-》尝试改代码-》运行(安卓运行还特慢)-》运行出错继续找资料。tupo

突破口

最后快被逼疯了的我,已经在假设是不是校内网不可以进行网络编程了,如果是固定ip就没这个问题了。然后我就转了研究方向,从寻找错误点到验证上面那个理论,验证的方法很简单,网上找个已经发布的pc做客户端安卓做应用端的程序,由于是已经发布的,那被证明程序是正确的,如果程序正确我还是不能连接成功的话,那就是校内网的问题了,在此说明下,我的pc和手机都是连接的T_Link路由器也就是wifi,该路由器连到校园网。顺便说下被我找到做小白鼠的是一个一个叫无线鼠标的东西。

小Q截图-20130602123346

 

解决方案

本来想证明上面那个理论是正确的,最后被我解决了原先的问题,事事多变啊,现在整理下,给和我一样碰到相同问题的人,当然我也做个记录,记录我摔倒的一个坑,用了我整整两天啊!

下面介绍利用安卓进行网络编程的环境配置。

一.连在相同wifi上

解决点

最好有个wifi点可以都连接,如果没有,那只好自己买个了,想学技术,这点必要的钱还是要舍得的。

手机:

小Q截图-20130602123718

pc:

小Q截图-20130602123805

 

更好的解决点:

经本人测试,只要有个笔记本就行,就算没网都行,只要你不上网,因为手机只需和pc机通信即可。具体方法就是网上下个wif共享精灵之类的程序,让笔记本架设wifi,手机连到笔记本即可,当然不用wifi共享精灵之类的程序直接命令行输入也可,只是麻烦点,反正我是懒得记那些命令行代码。

pc:

小Q截图-20130602124804 小Q截图-20130602124834

手机:

小Q截图-20130602124927

终极解决点:后面我有测试下,发现笔记本连接有线,手机连接wifi,也能通信的。因此现在总结下。

1. pc 连有线 手机连 wifi

2.pc 连wifi 手机连wifi

3. pc开启wifi共享 手机连pc

ps:下面是我的一些设想,一般时候用不到,但可能性很大,看客可自行尝试。

4. 手机开启wifi共享 pc连手机

5.蓝牙连接

 

 

 

二.pc机需要关闭防火墙

 

 

 

 

解决点:这个必须啦,我建议是,测试的时候打开,平常浏览网页,看看岛国爱情动作大片的时候就把他关上了。

进控制面板-》windows防火墙-》打开关闭windows防火墙,进去都关了好了

小Q截图-20130602125333 小Q截图-20130602125355 小Q截图-20130602125420

三.填写正确ip

 

 

解决点:开始菜单栏搜索框输入cmd-》跳转命令行控制界面-》输入ipconfig,按回车,查看ip配置

小Q截图-20130602125632 小Q截图-20130602125814 小Q截图-20130602125825

此时会跳出一大坨东西,由于笔记本有多块网卡,所有里面会有很多ip的,不要管后面,开头一撮就是你的pc ip了,就是下面ipv4地址

 

 

 

 

 

 

 

 

 

 

 

 

小Q截图-20130602125950

后记

那个希望我在我喜欢的事情上能越走越远把。

2013.6.3补充

清单目录里面存在

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

也会出现闪退现象,这里解释下闪退,就是点击进入程序,程序之间强制退出,如果你没碰到,那恭喜你啊,这不是什么好的体验。下面回到正题,研究了原因,发现问题出在android:targetSdkVersion="17"上,将其删除即可。

转载于:https://www.cnblogs.com/haichao/archive/2013/06/02/3113803.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值