【发布时间】:2010-05-19 22:32:04
【问题描述】:
我有一个正在运行的服务器,它接受通过客户端套接字建立的连接,我需要从这个客户端套接字读取输入,现在假设客户端打开了与我的服务器的连接,而没有通过服务器的套接字输出流发送任何内容,在这种情况下,当我的服务器尝试通过客户端套接字的输入流读取输入时,将引发异常,但在引发异常之前我希望超时 5 秒,我该怎么做?目前这是我的代码在服务器端的样子:
try
{
InputStreamReader clientInputStream = new InputStreamReader(clientSocket.getInputStream());
int c;
StringBuffer requestBuffer = new StringBuffer();
while ((c = clientInputStream.read()) != -1)
{
requestBuffer.append((char) c);
if (requestBuffer.toString().endsWith(("\r\n\r\n")))
break;
}
request = new Request(requestBuffer.toString(), clientSocket);
}
catch (Exception e) // catch any possible exception in order to keep the thread running
{
try
{
if (clientSocket != null)
clientSocket.close();
} catch (IOException ex)
{
ex.printStackTrace();
}
System.err.println(e);
//e.printStackTrace();
}
【问题讨论】: