我有两台具有不同物理IP的服务器映射到群集中的一个虚拟IP。因此,当其他人可以取代它时。
此时只有一个服务器处于活动状态,并将通过TCP服务器套接字侦听客户端的请求。我正在使用Java。
现在,如果我尝试使用物理IP的ServerSocket(int port, int backlog, InetAddress bindAddr)
,它可以正常工作。
但是当我使用虚拟IP时,它会给我绑定异常:
java.net.BindException: Cannot assign requested address
我还尝试仅使用PORT (ServerSocket(int port))
打开ServerSocket。当我使用物理IP从客户端应用程序连接它时,它可以工作,但不能与虚拟IP连接,最终会出现连接重置异常。
我需要连接一个IP,以便在Passive服务器变为活动状态时不需要更改客户端应用程序。