codice:
package esercizio15.pkg1;
import java.net.*;
import java.io.*;

public class Network {
    public static void main(String[] args) {
        ServerSocket server;
        try{
            server=new ServerSocket(8100);
            while(true){
                Socket incoming=server.accept();
                ThreadServer t=new ThreadServer(incoming,12);
                t.start();
            }
        }catch(IOException e){
            e.getStackTrace();
        }
    }
}
class ThreadServer extends Thread{
    private Socket incoming;
    private int n;
    private BufferedReader input;
    private PrintWriter output;
    public ThreadServer(Socket s,int n){
        incoming=s;
        this.n=n;
    }
    public void run(){
        try{
        input=new BufferedReader(new InputStreamReader(incoming.getInputStream()));
        output=new PrintWriter(incoming.getOutputStream(),true);
        for (int i=0;i<n;i++){
            output.println(i);
            System.out.println(i);
            }
        output.println("BYE");
    }catch(IOException e){
    e.getStackTrace();
}finally {
            try{
                incoming.close();
            }catch(IOException e){
                e.getStackTrace();
            }
        }
    }}

public class MediaNumeri {
    private static final int PORTNUM=8100;
    public static void main (String []args){
        Socket socket=null;
        BufferedReader input=null;
        String address;
        if (args.length != 1) 
            {
            System.out.println("Usage: java SommaNumeri <address>");
            return;
            }
        else
            address = args[0];
        try {
      socket = new Socket(address, PORTNUM);
      input=new BufferedReader(new InputStreamReader(socket.getInputStream()));

    }catch (IOException e) 
        {System.err.println("Errore: non è possibile stabilire la connessione");
      	System.exit(1);}
        try{
            String str;
            int somma=0,conta=0;
            boolean finito=false;
            while(!finito){
                str=input.readLine();
                if(str.trim().equals("BYE"))
                    finito=true;
                else{
                    somma+=Integer.parseInt(str);
                    conta++;}
            }
                    System.out.println("Media numeri ricevuti dal server: " + somma/conta);
        input.close();
        socket.close();
    }
    catch (IOException e) 
{ System.err.println("Errore durante la comunicazione col server");}
        }
    }