你看看catch到的是什么exception,我估计是socket reset by peer之类的exception,原因是server和client的socket连接断了。程序不是正常结束while的,而是catch了exception,所以*.close()没有被执行。

解决方案 »

  1.   

    我怎么能够看到catch()到的是什么exception?
      

  2.   

    }catch(Exception e){
       e.printStackTrace();
    }
      

  3.   

    把你程序里面的
    }catch(Exception e){}
    改成我给得代码,运行server、client,关闭client时观察server的console输出
      

  4.   

    如何能看到console输出,什么都没有呀?
      

  5.   

    你的程序,抓获列外应该有区别吧!cin,cout是IOEexception error, 
    socket也应该捕获列外把1