Seagull |
最近因为项目移动端自动化的需要,找了一台机器部署一个新的LuckyFrame客户端,把JDK,客户端安装好以后, 再安装了 安卓SDK自带的模拟器 ,再启动客户端的监听,一切正常,客户端程序正常启动6633端口监听,本来以为一切都如想像那般容易。
然而问题来了.......
启动完监听后,服务端死活检测不到客户端的存在,第一反应程序肯定不会有问题,因为同样的程序已经部署N套,那肯定就是网络问题了,接下来排查问题...
1: 从服务端Ping客户端的IP,正常。 2:从服务端telnet客户端的IP 端口,正常。
脑袋冒汗,隐隐的感觉我要在这个问题上耗上一段时间了......
切换到自己电脑本地开发工具上调试代码,查看服务端尝试链接客户端抛出的异常信息
这就奇怪了, 129.214.62.141这个IP根本不是我客户端的访问IP,这个IP是哪里来的呢?
打开客户端的命令行窗口,ipconfig再次确认查一下客户端的IP信息,瞬间明白了,这个IP是安装好安卓模拟器后,VirtualBox产生的一个IP。
虽然我在服务端配置客户端IP的时候,配置的IP是客户端本地链接的IP,但是服务端通过RMI接口检测客户端心跳的时候,仍然访问到了VirtualBox的虚拟IP上去了,所以导致检测失败。 原因: RMI接口对于多网卡的服务注册,必须要指定一个IP, 此问题在V2.6版本会进行优化。如果有多网口的情况,去客户端的配置文件sys_config.properties中找到client.localhost.ip配置项,指定一个客户端的实际IP即可。
临时解决办法: 1:打开网络配置里面的网络适配器,可以看到有两个网络链接。 2:禁用VirtualBox的链接 3:重启下客户端机器,重启完成后,打开客户端6633端口监听程序 4:再次开启VirtualBox网络链接 5:再次尝试服务器检测客户端心跳,是不是已经正常可以访问了呢
|
2018-05-09 07:45:00