I due vector vengono implementati alla connessione di un client...

public void start() {
try {
serverSock = new ServerSocket(port); runner = true;
}catch(Exception e){
System.out.println("Server - Errore di partenza del server: " + e.getMessage());
}

while(runner) {
try {
log.store("In attesa di connessioni \n");
s = serverSock.accept();
socksServer.addElement(s);
log.store("..accettata" + s + s.getInetAddress() + "\n");
aggiornaClient = new AggiornaListaClient(chatters,nicknames);
ClientTimer.schedule(aggiornaClient,0,30000);
ServerThread = new ServerEchoRead(s,this); threadServer.addElement(ServerThread);
ServerThread.start();
}catch(IOException e) {
System.out.println("Server - Connessione al server fallita: " + e.getMessage());
}
}
}

Questo metodo viene chiamato dalla console del server..


public void disconnettiServer() {
try {
System.out.println("inizio giro");
en = threadServer.elements();
while(en.hasMoreElements()) {
ServerThread.destroy();
}

System.out.println("primo giro");

en = socksServer.elements();
while(en.hasMoreElements()) {
s.close();
}

runner = false;
console.setIconColor("D:/rosso.gif");
JOptionPane.showMessageDialog(null,"Server disconnesso","Errore",JOptionPane.ERROR_MESSAGE);
color = "red";
log.store("Server disconnesso \n",color);

}catch (Exception ex) {
System.out.println("Server - Errore disconnessione del server " + ex.getMessage());
}
}