我正在研究TCP项目,如果服务器出现故障,我有一个问题就是如何处理客户端。 如果服务器仍在发送内容,我尝试检查可用。 但在我停止服务器之后,它没有打印出“Sever已关闭”。
InputStream in = socket.getInputStream();
BufferedInputStream i= new BufferedInputStream(in);
obtainedObject = new ObjectInputStream(i);
while (true) {
try {
if (i.available()==-1){
System.out.print("Server is down");
}
Object a = (Object) obtainedObject.readObject();
if (a.toString() != null) {
//bla bla
答案 0 :(得分:0)
抛弃available()
测试,然后执行readObject()
。当服务器结束时,它将抛出EOFException
。