java - 如何自动关闭Java服务器?

标签 java timer client-server session-timeout

我需要一种方法来自动关闭通过使用某种计时器运行的服务器程序。到目前为止,这就是我得到的

    long start = System.currentTimeMillis();
    long end = start + 10 * 1000; // 60 seconds * 1000 ms/sec

    while (System.currentTimeMillis() < end) {
        Socket connectionSocket = welcomeSocket.accept();
        BufferedReader inFromClient = new BufferedReader(
                new InputStreamReader(connectionSocket.getInputStream()));
        DataOutputStream outToClient = new DataOutputStream(
                connectionSocket.getOutputStream());
        clientSentence = inFromClient.readLine();
        System.out.println("Received: " + clientSentence);
        capitalizedSentence = clientSentence.toUpperCase() + '\n';
        outToClient.writeBytes(capitalizedSentence);
        count = count + 1;

    }
    welcomeSocket.close();

这可能吗?请帮忙,不要投反对票。我对 Java 中的客户端-服务器有点菜鸟。

最佳答案

您可以使用setSoTimeout为此。

通常,您可以将其设置为某个值,例如 100 毫秒,进入循环并调用接受。当抛出超时异常时,您将检查是否可以退出,然后退出循环或继续。

完成后请确保清理套接字。

关于java - 如何自动关闭Java服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940929/

相关文章:

java.lang.NullPointerException 在 sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java :1009)

Java - 排名/匹配句子

Java用数字初始化一个数组

服务中的 Android 计时器

java - 如何在 java 2d 射击游戏中将计时器设置为 1 分钟?

java - 套接字编程中int数组的读写,java

java - QuickBooks SDK 可以与 WebConnector 配合使用吗?

python - uWSGI中的timer和rbtimer有什么区别?

c++ - 服务器端识别客户端的方法

java - 使用Java编写的RESTFul api登录/注册