java.net.SocketTimeoutException: failed to connect to /172.16.29.238 (port 8080) from /10.38.84.198

开发一个app时,用自己电脑搭建了一个服务器,用自己开发的app访问服务器时一直出现错误java.net.SocketTimeoutException: failed to connect to /172.16.29.238 (port 8080) from /10.38.84.198;
错误意思是指主机172.16.29.23连接主机10.38.84.198超时,自己查了很多资料,整了很久最后终于找到了错误的原因,特此记录一下。

解决方案

让电脑和手机处于同一个局域网即可,可以用自己电脑开一个Wifi,手机关掉流量,连上电脑开的Wifi。

原因

出现这个错误的原因涉及到一些计算机网络方面的知识,首先我电脑搭建服务器用的是分配给我电脑的一个局域网地址,即一个内网地址,而我手机访问时,开的是流量,分配给我手机的也是另一个网络分配给我手机的局域网地址,我的手机没有与电脑处于同一个局域网;两个不同网络的内网地址肯定不能直接互相访问。简单点说就是,你搭建服务器的地址是公网ip,别人才能访问得到;如果硬要用内网地址搭建一个外界能访问的服务器也可以,你要下载一些软件,在路由器配置一下信息才行。因为,内网的地址要访问外网,实际要进行一个地址转换才可以,把地址转换为一公网ip才可以与别的网络交换信息,而地址转换则发生在一个主机的默认路由那里;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值