corretto!
ecco il codice corretto
codice:
import java.io.IOException;
import java.net.*;
import java.util.*;
public class Server {
 private boolean running;
 private int port;//porta su cui ascoltare
 private ServerSocket serverSocket;
 
 private ArrayList<Socket> clients;
 
  Server(int serverPort){//costruttore
	  this.port=serverPort;
	  this.serverSocket=null;
	  this.running=false;
	  clients=new ArrayList<Socket>();
  }
 
 public void start(){//metodo per l'avvio del server
	  serverSocket=null;//inizializzo serverSocket
	 try {//cerco di mettere in ascolto il server
		serverSocket=new ServerSocket(port);
		System.out.println("Server in ascolto sulla porta "+port);
		running=true;//essendo connesso correttamente , il server può girare
	 } catch (IOException e) {
	   System.out.println("Impossibile connettersi alla porta "+port);
	   }
	 while(running){//finché può girare , gira
		serve(); 
	 }
 }
  public void stop(){//metodo per fermare l'esecuzione del server
	running=false; 
  }
  
  public void lista(Socket cl){
	  //clients = new ArrayList<Socket>();
	  clients.add(cl);
  }
  
 public void serve(){//con questo metodo accetto le connessioni con i client
	 Socket client = null;
	 try {
		client=serverSocket.accept();//instauro connessione con il client. Ricorda.accept() restituisce un socket
		lista(client);
		
		System.out.println("client : "+clients.size());
		//avvio un thread per ogni connessione accettata
		Thread applicazione = new Applicazione(client);
		applicazione.start();//metodo che avvia il thread
	} catch (IOException e) {
		System.out.println("Impossibile instaurare connessione con il client");
		stop();//stoppo il server
	  }
 }
  public static void main(String[] args){
	  Server server = new Server(7777);
	  server.start();
  }
}
grazie