您现在的位置是:主页 > news > 莒县网站设计/太原全网推广

莒县网站设计/太原全网推广

admin2025/5/2 6:34:59news

简介莒县网站设计,太原全网推广,设迹官网,自己建网站难吗我是用自己的电脑搭建服务器,首先问题是我们需要在路由器上端口映射,外网才能访问到自己的电脑,如何端口映射可以看看这篇文章: http://blog.csdn.net/zhoubin1992/article/details/45917775 一、D-LINK端口转发设置 我的是D-…

莒县网站设计,太原全网推广,设迹官网,自己建网站难吗我是用自己的电脑搭建服务器,首先问题是我们需要在路由器上端口映射,外网才能访问到自己的电脑,如何端口映射可以看看这篇文章: http://blog.csdn.net/zhoubin1992/article/details/45917775 一、D-LINK端口转发设置 我的是D-…

我是用自己的电脑搭建服务器,首先问题是我们需要在路由器上端口映射,外网才能访问到自己的电脑,如何端口映射可以看看这篇文章:

http://blog.csdn.net/zhoubin1992/article/details/45917775

一、D-LINK端口转发设置

我的是D-link如图:


名称写你客户端的名称。

IP地址:路由器给本机分配的IP地址,一般以192.168开头。查询方法:cmd下ipconfig

填写私有端口就是路由器需要打开的端口,也可以设置一个区间

公共端口的就是外网要访问的端口。

通信量类型选任意就好了。

二、socket通信程序出错

执行到Socket socket=new Socket("xx.xx.xxx.xxx",8888);就抛异常。报timeout错误。

原因就是客户端连接不上socket。

解决方法:

1、首先确定另开一个线程完成网络连接。

				new Thread(){public void run(){try{//连接网络并打开流s = new Socket("110.83.75.12", 8888);dout = new DataOutputStream(s.getOutputStream());din = new DataInputStream(s.getInputStream());}catch(Exception e){//捕获异常e.printStackTrace();//打印异常}

2、这样还是不行,最后在 StackOverflow里找到了答案, 还需要 在OnCreate中开启StrictMode

	     StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()        .detectDiskReads()        .detectDiskWrites()        .detectNetwork()     .penaltyLog()        .build());        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()        .detectLeakedSqlLiteObjects()     .penaltyLog()        .penaltyDeath()        .build());     }
我也不知道为什么要加严苛模式,有人知道的话留言告诉我吧。

这时可以通信了,但是当我用自己的3G流量访问时,又出现了问题。查阅后发现是socket本机IP的问题。

本机还有个外网IP,获得方法:在百度上填写本机IP,出现的就是本机的真实IP。

然后把Socket("xx.xx.xxx.xxx",8888);的IP替换就好了~