我正在开发一个Java应用程序,它将侦听本地端口与另一个程序进行通信。通常它会听,比如说127.0.0.1:8808。Java以编程方式获得REAL环回地址
我的一个客户报告说他们使用的是Citrix环境,它就像MS远程桌面环境一样,多个用户可以同时登录同一台机器。如您所知,此类终端服务器用户共享一个环回地址,也就是说,只有第一个用户运行我的应用程序才能成功绑定到127.0.0.1:8808,其他人将收到资源冲突错误。
我的客户端尝试通过启用“虚拟回送”来解决此问题,此设置可以自动为不同的用户分配不同的回送地址,每个用户都将获得127.0.0.2-127.0.0.255作为回送地址而不是全部127.0.0.1这听起来像是这种情况的完美解决方案。
一个测试显示虚拟环回对于Chrome和IE等其他程序都很好,TCPView工具显示任何到本地主机的连接都会重定向到127.0.0.2,除了我的程序。
我想这个问题可能是因为我在代码中使用了固定地址127.0.0.1,但我没有一个确认的环境。所以我的问题是:在这种情况下是否有任何Java方法可用于获取REAL环回地址,因此我可以将其绑定到正确的地址?
在此先感谢!
127.0.0.1是真正的环回地址。您可以使用其他地址作为循环返回,但这是大多数人使用的地址。 –
你做了一些研究;像http://support.citrix.com/article/CTX209237 – GhostCat
@GhostCat谢谢,那可能是根本原因,我会请我的客户端试一试。 –