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