qq_40939785
Eumenides-Z
采纳率27.3%
2018-05-17 16:30 阅读 1.3k

同一wifi下,安卓手机与linux虚拟机socket通信

5

我在linux虚拟机上建立了socket服务器,物理机为windows10,在安卓上建立socket客户端,是在Android Studio上写的,准备进行简单的socket通信。
当我在Android Studio上用安卓模拟器时,可以成功通信并处理。但我导出apk,安装在实体安卓手机上的时候,就连接不上,而且我windows物理机和安卓手机是在同一wifi环境下的。
windows和linux虚拟机可以ping互通,两边防火墙都关了。
实体通信需要什么具体的条件吗,为什么安卓模拟器可以成功,实体就连不上了?
急求解答!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • itgather itgather 2018-05-18 05:31

    虚拟机设置->网络适配器:改为桥接模式,linux虚拟机重新dhcp获取下IP(或者手动分配局域网段IP),就可以了。这个是IP不同网段的问题。
    安卓模拟器可以访问是因为默认虚拟机NAT模式下,可以直接跟宿主机正常通讯。

    点赞 1 评论 复制链接分享
  • LGWHRQ LGWHRQ 2018-05-17 17:22

    或许是没有在同一网段,可以在pc端共享一个网络,客户端连接后就可以进行连接通讯了

    点赞 评论 复制链接分享
  • CFDNVIP iapplebpy 2018-05-17 18:36

    安卓模拟器本身在物理主机上会获得一个端口与外部通信,此时你在模拟器上的数据收发全是模拟器的数据收发,当你打包移植到别的物理设备此时主机,ip,端口都需要重新配置。你看下你的网络配置是不是代码写死

    点赞 评论 复制链接分享
  • qq_38949548 跑酷少年像风 2018-05-18 02:50

    看一下虚拟机设置里的网络适配器是不是桥接模式,如果不是应切换为桥接模式,再配置Linux IP和手机在同一网段

    点赞 评论 复制链接分享
  • weixin_41586455 weixin_41586455 2018-05-18 04:32

    检查一下路由器是否开了AP隔离模式。

    点赞 评论 复制链接分享
  • qq1053781225 apples_kk 2018-05-18 09:39

    网络模式改成桥接模式就行了,模拟器系统也是路由器的IP

    点赞 评论 复制链接分享

相关推荐