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");} } }

Rispondi quotando