Как соккет клиента отключить на сервере. isConnected(); всегда true. При каких условиях она false вообще бывает? Хоть увидеть бы.
public void disconnectClient(){
connected=false;
try{
if(client!=null){
printServer.print("Client "+address+ " disconnect\n");
printServer.flush();
client.close();
}
}catch(IOException ex){}
synchronized(connections){
connections.remove(this.address);
}
}
Метод чтения плюс проверка каждую секунду статус потока Сокета Клиента. Вообщем ошибок нет, но почему поток socket всегда true будет показывать, и как обьект подключения клиента
очистить. Он же в памяти вести. И как его убить на false скинуть, вообще как, должен же быть метод типa disconnect();
(new Thread(){ // для демонстрации проблемы только
public void run(){
while(client.isConnected()){
System.out.println(client.isConnected(); // вечное true ни как не зависит от клиента
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
System.out.println(ex);
}
}
}
}).start();
try{
while((line=bis.readLine())!=null){
if(line.equalsIgnoreCase("exit")){
disconnectClient();
return;
}
// .....
}catch(IOEcxeption ex){
disconect();
}