Server  (versione 1.0)
Sviluppato da Marco Arrighini e Andrea Curcio.


Il seguente codice, permette di avviare un server sulla propria macchina. Il server resta in ascolto sulla porta 8080.
Il server creato con il codice sottostante, gestisce più connessioni in contemporanea.


import java.io.*;
import java.net.*;

public class Server {

   static final private int portnumber = 8080;
   static final private int max_conn = 10;
   static private ServerSocket s;
   static private Socket socket;

   public static void main(String args[]) throws IOException {

      try {
         s = new ServerSocket(portnumber);
         System.out.println("Server attivato sulla porta locale "+portnumber);
         int i=0;
         while(true) {
            while(i<=max_conn) {
               try {
                  socket = s.accept();
               } catch (IOException e) {}
               i++;
               System.out.println("Connessione numero " + i + " instaurata con "+socket.toString());
               new Connessione(socket);
            }
            System.out.println("Numero massimo di connessioni raggiunte");
            i=Connessione.getN();
         }
      } catch (IOException e) {}
      finally {
         if (s != null) {
            System.out.println("Chiusura server in corso...");
            s.close();
         }
      }
   }
}

public class Connessione extends Thread {

   private Socket socket;
   private static int n = 0;
   private static int num = 0;

   public Connessione(Socket psocket) {
      socket=psocket;
      n++;
      num = n;
      Thread t = new Thread(this);
      t.start();
   }

   public void run() {
      try {
         BufferedReader in = new BufferedReader(
                              new InputStreamReader(socket.getInputStream()));
         PrintWriter out = new PrintWriter(
                            new BufferedWriter(
                             new OutputStreamWriter(socket.getOutputStream())), true);
         out.println("Connessione istaurata");
         String str;

         while(!((str=in.readLine()).equalsIgnoreCase("end"))) {
            out.println("Connessione "+num+", hai detto: "+str);
            System.out.println("Connessione "+num+" dice: "+str);
         }
         out.println("Connessione terminata");
         System.out.println("Connessione "+num+" chiusa");
         socket.close();
         socket = null;
      } catch(IOException e) {}
      finally {
         if(socket!=null) {
            System.out.println("Problemi nella connessione "+num+". Chiusura in corso...");
            try {
               socket.close();
            } catch (IOException e) {}
         }
      }
   }

   public static int getN() {
      return n;
   }
}




Documentazione:
Non disponibile



Questo Applet è stato sviluppato nel corso di Laboratorio di Informatica presso l´Università degli Studi di Brescia, Facoltà di Ingegneria dell´Informazione.

Salvo diversa indicazione, i codici sorgente sono stati scritti da Marco Arrighini e da Andrea Curcio.