如果客户端突然断开连接并引发 EOF 异常,则以下循环似乎会阻塞整个服务器应用程序:
String a = "";
int amount = 1;
while(((cr = streamIn.readByte()) != EOF))
{
if(amount < 100)
{
a+=(char)cr;
amount++;
}
else
break;
}
根据功能说明: readByte():接收一个字节。该方法将阻塞,直到数据可用。
问题是,我怎样才能使其超时,使其最多只阻塞几秒钟?
最佳答案
您是否尝试过设置 Socket.setSoTimeout()
关于Java readByte() 阻止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829163/