我需要一种自动关闭通过使用某种计时器运行的服务器程序的方法。直到现在这就是我得到的
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。抛出超时异常时,您将检查是否可以退出,并且退出循环或继续运行。
然后确保完成后清理插座。