Mac上解决RMI连接服务器不成功问题的方法
前言
因为看到网上对于Mac的本类问题描述不是很多,通常都是windows的解决办法,因此本文致力于在Mac上解决RMI连接服务器不成功问题。
因为我是在Mac编写的程序所以windows的各位可以根据文件名和命令名自行更改操作尝试。
一、问题描述
学校有一个作业是要完成一个多人的线上聊天软件,经过查询各种资料最后选择了服务器和客户端之间的连接使用RMI技术,因为它比socket封装好些。在编写完连接部分做测试的时候,我发现客户端在输入服务器ip地址连接时客户端总会出现127.0.0.1这个ip拒绝访问的问题,但是偶尔可以成功,但是几率极小没有什么规律,通常都是一小段时间连接成功但是之后就不成了。
二、问题挖掘
通过终端的错误信息:
java.rmi.ConnectException: Connection refused to host: 127.0.0.1
我认为是服务端返回的ip地址与我输入的ip匹配不成功所以导致的连接被拒绝。所以我就在客户端和服务端分别打桩将ip地址打印出来。果然发现服务端的ip地址是127.0.0.1而不是真正的本机ip地址。
三、解决问题
通过查询资料,我了解到:
java.net.InetAddress.getLocalHost
方法在取主机ip的时候windows和linux或其他的解析方法是不一样的,通常在windows里能取到正确的ip。