我需要一种自动关闭通过使用某种计时器运行的服务器程序的方法。直到现在这就是我得到的

    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 ms之类的值,进入循环并调用accept。抛出超时异常时,您将检查是否可以退出,并且退出循环或继续运行。

然后确保完成后清理插座。

09-13 13:52