套接字客户端,空闲超时

时间:2011-02-10 09:09:34

标签: java sockets

如果客户端在特定时间内没有收到/发送任何消息,是否仍然为客户端套接字设置超时?

这是我的代码片段:

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没有收到任何消息,它将退出循环,关闭连接并重新开始接受连接。

我知道如何关闭连接并重新开始接受连接,但我仍然无法理解其余部分。无论如何要实现这个目标吗?

感谢您的帮助

0 个答案:

没有答案