将JVM绑定到默认值以外的IP

时间:2010-01-25 19:19:29

标签: java networking sockets jvm axis

我有一个多宿主系统,有多个网卡和IP。

我不确定我的Sun JVM如何选择代表'this'系统的IP(当使用Socket或URLConnection连接到另一个系统时,这是“源IP ”)。它是选择系统默认NIC,还是可以对系统名称进行反向查找?等

在任何情况下,有没有办法将JVM显式绑定到特定的IP?

或者,如果有人知道如何从Axis Webservices框架那样做,那将非常有帮助。

非常感谢..

2 个答案:

答案 0 :(得分:4)

它由操作系统完成,而不是由JVM完成。它使用路由表来确定哪个接口可以路由到您尝试访问的目标,并使用它。

如果你有多个可以路由到给定目的地的接口,理论上你应该能够选择你使用的源地址,但我不知道你是否真的可以---也许在连接之前绑定做?但是,由于您无法访问路由表,您如何确定哪些接口可以到达目的地?

答案 1 :(得分:2)

我不确定在使用URL时如何控制它,但在创建Socket时,您可以使用the constructor that takes a local address argument.