我有一个多宿主系统,有多个网卡和IP。
我不确定我的Sun JVM如何选择代表'this'系统的IP(当使用Socket或URLConnection连接到另一个系统时,这是“源IP ”)。它是选择系统默认NIC,还是可以对系统名称进行反向查找?等
在任何情况下,有没有办法将JVM显式绑定到特定的IP?
或者,如果有人知道如何从Axis Webservices框架那样做,那将非常有帮助。
非常感谢..
答案 0 :(得分:4)
它由操作系统完成,而不是由JVM完成。它使用路由表来确定哪个接口可以路由到您尝试访问的目标,并使用它。
如果你有多个可以路由到给定目的地的接口,理论上你应该能够选择你使用的源地址,但我不知道你是否真的可以---也许在连接之前绑定做?但是,由于您无法访问路由表,您如何确定哪些接口可以到达目的地?
答案 1 :(得分:2)
我不确定在使用URL
时如何控制它,但在创建Socket
时,您可以使用the constructor that takes a local address argument.