拥有一个控制台应用程序,一个接受来自客户端的多个连接的服务器,是否可以在关闭的应用程序上拥有侦听器或事件?在这种情况下,我希望告诉所有连接的客户端在应用程序真正自行关闭之前轻轻断开连接。

有什么解决办法吗?谢谢你!

有帮助吗?

解决方案

您想使用关闭挂钩:

Runtime.getRuntime().addShutdownHook(theHookThread);

所以当 JVM 关闭时线程将会运行,参见 这里 了解详情。

其他提示

如果通过关闭应用程序,您的意思是操作系统查杀服务器进程?

在这种情况下有没有办法让服务器知道它是被杀害。这将删除现有连接。

如果通过关闭应用程序时提供用于系统管理员手动关闭服务器的方法(可能通过键入“退出”在服务器控制台)。然后关闭事件将是一个自定义事件,以及你将不得不编写的听众,并通知到每个人的服务器已关闭。在这种情况下它是更多钞票。

尝试添加有关服务器如何被建立或如何运作的更多细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top