2009-04-15 96 views
4

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

任何解决方案?谢谢!

回答

7

你想用一个关闭挂钩:

Runtime.getRuntime().addShutdownHook(theHookThread); 

所以,当JVM关闭线程将被运行,见here了解详情。

+0

通过快速搜索,我找到了这篇文章(http://www.onjava.com/pub/a/onjava/2003/03/26/shutdownhook.html?page=1),这正是我正在寻找。拜托你! – elbaid 2009-04-15 12:03:06

0

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

在这种情况下,服务器无法知道它正在被杀死。它会丢弃现有的连接。

如果通过关闭应用程序,您可以为sys admin手动关闭服务器(可能通过在服务器控制台键入“exit”)提供一种方法。然后关闭事件将是一个自定义事件,您将不得不编码侦听器并通知所有人服务器正在关闭。在这种情况下,它是可能的。

尝试添加有关您的服务器如何构建或如何工作的更多细节。

相关问题