我已经检查了有关这个主题的其他问题,其中大多数问题都建议运行一个任务来检查IP地址的更改。我正在Jetty服务器上运行一个服务。我的问题是,HTTP服务器是否为其工作捕获了这些更改?或者它只需要绑定到一个“端口”。如果web服务器已经进行了跟踪,那么我可能会尝试在我的应用程序中使用它作为触发器。我找不到这么说的消息来源。我只是想知道这样的事情是否已经存在。
发布于 2018-06-04 12:39:07
当Jetty启动时,它会创建一个(或更多) Jetty ServerConnector对象。
这些ServerConnector对象使用Java (和OS)网络设施(对于TCP/IP)“绑定”到特定的host:port,以列出传入连接。
如果主机IP崩溃,那么它就不能再接受传入的连接。
如果主机IP发生变化,这本质上就是现有主机的故障,并且正在创建新的主机(在新的IP上)。
对于像Jetty这样的服务器来说,响应这个场景需要能够连接到OS的网络服务,并被通知这种更改。然后在新IP上创建一个新的ServerConnector,用于接收新的传入连接。
注意:现有的连接可能会被操作系统终止。
不幸的是,标准Java没有这样的网络配置事件可挂接。
但是有一些特殊的API。
例如: Android有Connectivity。Android: Internet connectivity change listener
https://stackoverflow.com/questions/50679435
复制相似问题