退出一个程序,而不是更多

时间:2018-02-18 04:34:03

标签: java networking

所以基本上我在java中做服务器和客户端。

为了运行它,我必须同时运行 client.java server.java 。我需要关闭一个或两个,具体取决于实例

我目前需要的是一种方式,当客户端传递参数x时,客户端应该关闭,但服务器应保持打开状态。我还必须以这样的方式实现它:如果客户端通过参数y,则客户端和服务器都应关闭

我想到了:

System.exit(0);

但我不确定这是否会关闭服务器和客户端,这意味着它对第二个实例有用。我还想到让它到达程序的最后,但我不确定结果会是什么结果。

1 个答案:

答案 0 :(得分:1)

如果您希望服务器继续侦听更多握手请求(即使先前的连接已终止),您需要的是多客户端服务器。可以处理多个客户端的服务器通常运行一个线程,该线程保持循环并侦听想要连接的客户端。这样的线程会为每个连接生成一个新线程,并将其存储在一个线程数组中,这些线程都会继续监听或与每个客户端通信。

您可以详细了解多个客户端服务器here

通过监听所有客户端的线程数组,您可以分配一个条件来终止服务器中的所有线程和连接。这可能是其中一个客户端可以中继到服务器的字符串,例如“/ exit”,服务器可以检查任何客户端线程发送的信息是否为“/ exit”。