如果客户端在特定时间内没有收到/发送任何消息,是否仍然为客户端套接字设置超时?
这是我的代码片段:
try {
mainSocket = new ServerSocket(portNumber);
clientSocket = mainSocket.accept();
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(clientSocket.getOutputStream(), true);
} catch (IOException ex) {
Logger.error(this, "failed to accept connection. Error was " + ex.getMessage());
}
while (reading) {
try {
char[] arr = new char[2048];
ch = 0;
ch = in.read(arr);
if (ch < 0) {
reading = false;
}
else {
//process message
} catch (IOException ex) {
Logger.error(this, ex);
}
}
现在我要做的是,如果在x秒之后clientSocket没有收到任何消息,它将退出循环,关闭连接并重新开始接受连接。
我知道如何关闭连接并重新开始接受连接,但我仍然无法理解其余部分。无论如何要实现这个目标吗?
感谢您的帮助