0

我有一个用java编写的服务器-客户端对,如果另一个应用程序退出,我想退出一个应用程序。这是怎么做到的?如果用户手动退出应用程序(即按 cmd+q.alt+F4 等),我还想知道如何让程序执行一系列命令(例如关闭套接字等)

4

2 回答 2

1

通常这样做的方法是让心跳线程单独运行。它的工作方式是 -

  1. 每个客户端运行一个心跳线程,并将定期向服务器发送消息,基本上说“我正在运行”。您可以根据需要调整消息之间的时间。

  2. 服务器运行一个心跳监听线程,并将维护一个正在运行的客户端列表

  3. 一旦所有客户端停止发送消息,服务器就可以等待几分钟,然后正常关闭。

这种设计可以为单个客户端或多个客户端工作。

于 2011-11-25T19:08:26.710 回答
1

当一个退出时,它会向另一个发送一条消息,导致它退出。

一种方法是毒丸消息/对象,它会导致接收器在收到该消息时关闭。

于 2011-12-05T18:45:45.143 回答