Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    2

    Programmazione client-server in java

    Salve. è la prima volta che scrivo in questo sito e da un po di settimane sto cercando di imparare a programma da solo, quindi guardando video o leggendo qualche manuale. Ho trovato un esercizio su un sito: -Scrivere un’applicazione java che svolga la seguente elaborazione:
    CLIENT
    invia dei dati al server: l’invio dei dati termina quando viene inviato un valore finale (es. END).I dati sono letti da tastiera (come flussi di byte) e, per poter essere elaborati dal server, devono rappresentare dei numeri interi: quindi, ad esempio, il dato 123 sarà un dato valido, mentre il dato 1A2 dovrà essere scartato dal server.
    SERVER
    Il server effettuerà la seguente elaborazione sui dati ricevuti dal client: Calcolo della media dei valori introdotti, conteggio del numero di dati validi tra quelli ricevuti dal client, conteggio del numero di dati scartati. Il risultato delle elaborazioni dovrà essere inviato al server

    Allora io sono riuscito ho fatto due classi, una server e una client e ho scritto questo


    codice:
    import java.io.*;
    import java.net.*;
    public class Client {
         
        public static void main(String[] args) {
          String server = "localhost";
          Socket connessione = null;
          BufferedReader sIN = null, stdIn = null;
          PrintWriter sOUT = null;
       
        try {
          // crea il socket      
          connessione = new Socket(server, ServerClient.PORT);
          System.out.println("echoclient: started");
          System.out.println("CLIENT SOCKET"+connessione );
          System.out.println();
          // crea stream di input da SOCKET
          InputStreamReader input = new InputStreamReader(connessione.getInputStream()) ;
          sIN = new BufferedReader(input);
          
          // crea stream di output su Socket
          OutputStreamWriter osw = new OutputStreamWriter (connessione.getOutputStream() );
          BufferedWriter bw = new BufferedWriter (osw);
          sOUT = new PrintWriter(bw,true);
          
          // crea stream di input da tastiera
          
          stdIn = new BufferedReader(new InputStreamReader(System.in));
          String Dato;
          
          //legge da tastiera, invio al server
          while(true) {
              Dato = stdIn.readLine();
              sOUT.println(Dato);
              if (Dato.equals("END"))break;
              System.out.println("echo" + sIN.readLine());
             }
     
      //CHIUDO STREAM E SOCKET   
      System.out.println("closing...");
      sIN.close();
      stdIn.close();
      stdIn.close();
      connessione.close();
      }   
       
       catch(IOException e)  {
             System.err.println("errore");
             System.exit(1); 
       }
     }   
    }

    codice:
    import java.io.*;
    import java.net.*;
    public class ServerClient {
    public static final int PORT = 1050;
        /**
         * @param args the command line arguments
         */
    public static void main(String[] args) throws IOException {
       ServerSocket sSocket = new ServerSocket(PORT);;
       System.out.println("start");
       System.out.println("SERVER SOCKET: " +sSocket );
       Socket connessione =null; 
       BufferedReader sIN = null;
       PrintWriter sOUT = null;    
       
       try {
          // bloccante finche non avviene una connessione      
          connessione = sSocket.accept();
          System.out.println("connessione stabilita..."+connessione);
          
          // crea stream di input da clientSocket
          InputStreamReader input = new InputStreamReader (connessione.getInputStream() );
          sIN = new BufferedReader(input);
          
          // crea stream di output da clientSocket
          OutputStreamWriter osw = new OutputStreamWriter (connessione.getOutputStream() );
          BufferedWriter bw = new BufferedWriter (osw);
          sOUT = new PrintWriter(bw,true);
          
          // ciclo di ricezione dal client e invio di risposta
          // finchè il client manda la stringa "END" .... e si termina
          while(true) {
              String str = sIN.readLine();
              if (str.equals("END"))break;
              sOUT.println(str);
          }
       }   
       catch(IOException e)    {
             System.err.println("errore");
             System.exit(1); 
       }
        
        //CHIUDO STREAM E SOCKET
        System.out.println("closing...");
        sOUT.close();
        sIN.close();
        connessione.close();
        sSocket.close();
        }   
    }

    Adesso il problema è che non riesco a fare la media aritmetica tra i due numeri, so che per voi può essere facile ma io sono appena agli inizi e come studio da solo non ho nessuno a cui fare domande.. vi chiedo quindi di darmi un aiuto a finire questo programma, è da tutto il giorno che ci provo.. Grazie
    Ultima modifica di LeleFT; 19-12-2014 a 18:15 Motivo: Aggiunti i tag CODE

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.