给每个Clientsocket设置Timeout,这样如果一定时间没有数据,read将抛超时异常,这个时候检查是否超过你设置的超时值,如果是,就断开。

解决方案 »

  1.   

    pclinetSocket = new Socket(SV_IP,D_SV_PORT);
                pclinetSocket.setSoTimeout(10000);            pclinetSocket = new Socket();
                pclinetSocket.connect(new InteSocketAddress(SV_IP,D_SV_PORT),10000) ;            loip = pclinetSocket.getLocalSocketAddress().toString();
                loip = loip.substring(loip.indexOf("/")+1,loip.indexOf(":"));
                pin  = new  DataInputStream(pclinetSocket.getInputStream());
                pout = new  DataOutputStream(pclinetSocket.getOutputStream())参考一下