daota2得冠新闻联播为什么局域网内联不上

Socket Android手机客户端与PC服务端局域网内联测试 - 推酷
Socket Android手机客户端与PC服务端局域网内联测试
Socket Android手机客户端与PC服务端局域网内联测试,笔者采用的是 PC服务器,Android平板客户端 ,PC模拟器客户端,
前段时间为了加深 对Socket通信的印象和知识的深度掌握,我模仿了QQ的一些元素,也借鉴了其他牛人的一些源码思想,写了
一个 叫 IQ 的& Android 聊天软件,该软件大致由 Android客户端、J***A pc服务端、mysql数据库组成,客户端和服务端都
比较多的用到了 读写的IO流,SCOKET,线程等,这篇博客主要给大家介绍测试环境,不讲源码实现方式,也就是怎么使用写好
的程序来应用和 测试,我看过很多博客,在这方面说的很笼统,这样很不利于初学者的学习,所以我今天会很详细的讲一遍,
有兴趣学习 Socket的可以跟着一起来,不说废话了,看博客吧&
首先我们要只知道,在一个局域网内的IP是可以互相访问的,也就是同一个网段内,这样说可能很难理解,我上一些核心代码
结合代码演示给大家看:
public class IQserver {
public IQserver(){
ServerSocket Ssocket =
Ssocket=new ServerSocket(4632);
System.out.println(&Server is Loging...... &+new Date());
while(true){
//accept()是一个阻塞函数,所谓阻塞性方法
//就是说该方法被调用后将等待客户的请求,直到有一个客户启动并请求连接到相同的端口,
//然后accept()返回一个对应于客户的Socket
Socket socket = Ssocket.accept(); 上面代码是 PC 服务端的名为 IQServer 类代码段,ServerSocket 创建对象&
Ssocket=new ServerSocket(4632);设置监
听端口,***来自此端口的 SOCKET&
public class IQClient {
public IQClient(Context context){
this.context=
public boolean sendLoginInfo(Object obj){
boolean b=
socket=new Socket();
//host:为服务器的IP地址
port:为服务器的端口号
3000ms为连接延迟设置
socket.connect(new InetSocketAddress(&10.0.0.2&,);
}catch(SocketTimeoutException e){
//连接服务器超时
上面代码段是 客户端 IQClient 的代码段,我们可以看到我目前的测试IP是 10.0.0.2,端口4632,延迟3秒,这个测试是
是单一的 PC Android模拟器访问 本地PC 的IP ,它等于 127.0.0.1,下面开始说重点,我们测试就应该把服务器和***
端控制在同一网段下,比如:
路由器映射:我们都知道,当我们的设备连接路由器分享的热点,都会被自动分配一个IP,打个比方路由器的是
192.168.23.1,我用手机连上了路由器的热点,分配到了一个IP:192.168.23.0~255 第四个字段为不为1的0~255之间的
数字,因为IP地址不能冲突,还有就是端口4632不要与服务器的任何端口冲突,端口尽量设置不为常见的,具体端口查看
cmd命令:x:& netstat -ano
本地服务器自行设置:如果没有服务器呢,其实我们可以自己弄个局域网,玩过CS的都知道,嘿嘿,通常性能比较好的笔记
本会分出一个热点,PC的话插上wifi 也可以分享热点,然后其他玩家只要连接上这个热点就可以同时一起玩了,下面说说
笔记本分享热点的命令行,有工具的可以直接分享,不用敲命令,省事儿
笔记本热点分享CMD 命令:
x:& netsh wlan set hostednetwork mode=allow ssid=热点帐号 key=密钥
敲完回车,不用加;号
接着在敲:
x:& netsh wlan start hostednetwork&
不加;号,直接回车,如果出现一些异常,或失败提示
请检查服务管理,按住田字格键(菜单键)+R键 在运行里输入services.msc
找到WLAN这一项,开启,其他错误,请找到WLAN防火墙设置,设置完,重启PC
接下来就是利用分享出来的热点,进行局域网测试,以Win7 PC 为案例
比如我现在用我的 win7笔记本分享了一个名为 Fuck 的热点,它的IP是:192.168.23.1
具体端口查看方法如下(没网的情况下):
按住田字格键(菜单键)+R键 在运行里输入cmd ,执行 ipconfig 不加;号,回车,如下图 红框 就是PC服务器热点IP了
抹掉的是没有影响,因为这是我测试的,而且并没有分享热点,以你自己的为准,只是演示给大家看的
然后就在上面的
客户端 IQClient 的代码段,把IP替换成 192.168.23.1 就OK了,端口不用修改,然后执行开启服务器代码类,
服务器开启代码及结果图:
package engineer.jsp.server.S
* @author Engineer-Jsp
* IQ 启动服务类*/
import engineer.jsp.server.Control.IQ
public class StartServerSocket {
public static void main(String[] args) {
new IQserver();
*执行IQ测试,请先执行当前类,如果有需要更新和修改代码,首先要结束进程,刷新项目,多次运行当前启动类会抛下面异常
*java.net.BindException: Address already in use: JVM_Bind
*因为它还在PC线程中执行,结束进程的CMD命令:① netstat -ano ② 找到线程所在pid ,CMD命令:taskkill
/pid xxxx /f 即可
*然后单机选中项目右键刷新,在运行当前类,还需要注意server与client的端口要一致
*/ 下图白色标记部分为服务器开启之后绑定端口的进程:
接下来你要做的就是把写好的 客户端APP 分别***在手持设备上,然后连上名为Fuck的热点,登陆测试帐号,测试帐号来自你的mysql数据
库,我的测试账号表如下:
PC 模拟器好友列表:
Android 平板客户端,PC模拟器客户端,PC java服务器 ,开始测试:
设备比较烂。。。大伙不要笑啊。。。o(∩_∩)o ,很久以前买的本子了,平板也是
聊天图,下图中 账户小情绪 可以收到来自 Engineer-Jsp的消息,而Engineer-Jsp收不到小情绪的信息,是因为还有个BUG没解决呢,因
主要目的是进行局域网测试,所以这个目前来说不重要,影响不是很大
局域网的测试就到此说完了,有疑问可以留言,大家一起交流和讨论,看到第一时间回复,因为平时比较忙
下面说说网域网的应用,我们都知道每次的IP都不是固定的,这就需要域名跟IP进行绑定,然后通过DNS来解析域名得到IP,或者用服务器
固定静态IP也可以,那就会涉及到访问权限和安全问题,一般的数据库有类似于红白名单这样的限制,使我们无法获取账户信息,也就是账
户无 法登录,那就需要对数据库就行IP白名单设置,把权限符host设置为%号即可解决,然后在服务器上,用jvm来启动我们的服务端,用
java命 令进行启动,很多博客有类似的讲解,大家可以多查查资料,了解一下
也不知道我讲得详不详细,反正不懂得就提出来,大家一起讨论
源码下载地址,附带数据库:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

参考资料

 

随机推荐