Newsgroup: it.comp.java
Titolo: richiesta per modifica piccolo socket

Qui sotto ho riportato un esempio generico che avrei bisogno di
modificare per risolvere un'esercizio in quanto, visto che sono
all'inizio, non ho colto ancora gli aspetti principali, quali per
esempio attesa dati dal server o dal client per poi caricarli in
variabili.
Le modifiche che dovrei apportare dovrebbero rispondere al seguente
problema:
il server manda un messaggio in cui richiede uno username
• il client invia uno username
• il server ne controlla la validit`a ed invia o il messaggio
“Autenticato” (se lo username
`e corretto) o il messaggio “Non autenticato” (se lo username non `e
corretto).
• il client visualizza il messaggio ricevuto.
****************************** server ********************************
// Server.java,  Java Sockets Server, Buffered Data Streams
import java.net.*;
import java.io.*;
public class Server
{ public static void main(String[] args)
  {
    ServerSocket serverSocket = null;
    Socket socket = null;
    int sum = 0;                   // current sum value
    String sumString = "";
    try
    { // create socket
      serverSocket = new ServerSocket(1250);
    } catch (Exception e)
    { System.err.println("Error Creating Socket");
    }
    while (true)
    { try
      { // create socket
        // wait for connection then create streams
        System.out.println("Waiting for client connection");
        socket = serverSocket.accept();
        DataOutputStream ostream =
            new DataOutputStream(new BufferedOutputStream(
                                     socket.getOutputStream()));
        DataInputStream istream =
            new DataInputStream( new BufferedInputStream(
                                     socket.getInputStream()));
        // execute client requests
        while(true)
        { String myOperation = istream.readUTF();
          // perform increment operation
          if(myOperation.equals("increment"))
             sumString = String.valueOf(++sum);
          else
             // perform set sum operation
             if(myOperation.equals("set_sum"))
             { sum = 0;
               sumString = String.valueOf(sum);
               System.out.println("Sum = " + sumString);
             }
          ostream.writeUTF(sumString);
          ostream.flush();
        }
      } catch (Exception e)
      { System.err.println("Closing Socket connection");
        if (socket != null)
           try
           { socket.close();
           } catch (IOException ex) {}
      }
    }
  }
}
**********************************************************************
****************************** client ********************************
// Client.java,  Java Sockets Client, Buffered Data Streams
import java.net.*;
import java.io.*;
public class Client
{ public static void main(String args[])
  {
    String sumString = "";        // variable for storing current sum
    try
    { if(args.length != 2)
      {
        System.out.println("Usage java Client <host> <count>");
        return;
      }
      // Create socket connection
      System.out.println("Opening socket and creating streams");
      String host = args[0];
      Socket socket = new Socket(host, 1250);
	  System.out.println(socket.getLocalPort());
      // create streams
      DataOutputStream ostream =
           new DataOutputStream(new BufferedOutputStream(
                                    socket.getOutputStream()));
      DataInputStream istream =
           new DataInputStream(new BufferedInputStream(
                                   socket.getInputStream()));
      // set sum to zero
      System.out.println("Setting sum to 0");
      ostream.writeUTF("set_sum");
      ostream.flush();
      sumString = istream.readUTF();
      // get count, initialize start time
      System.out.println("Incrementing");
      int count = new Integer(args[1]).intValue();
      long startTime = System.currentTimeMillis();
      // perform increment "count" number of times
      for(int i = 0; i < count; i++)
      { ostream.writeUTF("increment");
        ostream.flush();
        sumString = istream.readUTF();
      }
      // display statistics
      long stopTime = System.currentTimeMillis();
      System.out.println("Avg Ping = "
                        +  ((stopTime - startTime) / (float)count) + "
msecs");
      System.out.println("Sum = " + sumString);
    }
    catch(Exception e)
    { System.err.println(e);
    }
   }
}
**********************************************************************
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 [SNIPPETTONE]
Trovo enormemente spiacevole che tu abbia postato la stessa questione di 
qualche giorno fa con un altro nick (e lascinado inalterata la mail... 
che testina!).
Devo ammettere di non aver letto il manifesto di questo NG, ma non credo 
che tra i suoi scopi vi sia quello di fare i compiti per casa a 
studentelli svogliati.
L'altra volta sono riusciti a farti cercare su google un esempio - i 
prossimi passi sono leggerlo, capirlo, cercare di togliersi i dubbi 
leggendo i javadoc e *POI* *EVEMTUALMENTE* chiedere consiglio sul NG 
riguardo agli specifici dubbi che ti son rimasti.
Ti prego di non considerare il fatto che non avrai ulteriori commenti da 
me sulle tue eventuali risposte a questa mia come maleducazione: è solo 
che ti ho inserito nella mia ignore list.
Buon lavoro,
	Giorgio