Newsgroup: it.comp.java
Titolo: Solo un' occhiata!!

[ Per una ottimale lettura del documento, mettere a tutto schermo . ]
Salve ragazzi, vi chiedo cortesemente una mano..
Di seguito vi riporto la classe Pop3.java e, per completezza, anche la
classe TestPop3.java (che comunque credo non vi serva per la risoluzione
del dubbio che ho)..
Secondo voi è necessaria l' istruzione int i = 1 ; nel metodo
getMessageCount() ?? (basta che scorriate velocemente il listato per
trovare tale istruzione in quanto l'ho evidenziata in rosso!)
Grazie!
*************************************************************************************************
/* Pop3.java - classe Post Office Protocol versione 3 */
            import java.net.*;
            import java.io.*;
            import java.util.*;
            public class Pop3 {
              /* dal server */
              protected BufferedReader in;
              /* al server */
              protected PrintWriter out;
              /* per scrivere il messaggio ad un file */
              protected PrintWriter outFile;
              /* il socket da usare per questa connessione */
              protected Socket socket;
              /**
               * Connessione al server.
               * @param user è l' username
               * @param password è la password per questo utente
               * @param server è il server a cui connettersi
               * @param box è il file dove scaricare il messaggio
               */
              public Pop3(String user, String password, String server,
String box) throws IOException {
                this(user, password, server, box, 110);
              }
              /**
               * Connessione al server.
               * @param user è l' username
               * @param password è la password per questo utente
               * @param server è il server a cui connettersi
               * @param box è il file dove scaricare il messaggio
               * @param port è l porta da usare
               */
              public Pop3(String user, String password, String server,
String box, int port) throws IOException {
                socket = new Socket(server, port);
                in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
                out = new PrintWriter(new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream())), true);
                outFile = new PrintWriter(new BufferedOutputStream(new
FileOutputStream(box, true)));
                in.readLine();
                sendCommand("USER " + user);
                sendCommand("PASS " + password);
              }
              /* uscire dal server */
              public void closeConnection() throws IOException {
                sendCommand("QUIT");
                in.close();
                out.close();
                outFile.close();
                socket.close();
              }
              /* per sapere il numero di messaggi per l'utente */
              public int getMessageCount() throws IOException {
                sendCommand("STAT", false);
                int messages = 0;
                int i = 1;
                String answer = in.readLine();
                StringTokenizer tok = new StringTokenizer(answer);
                if("-err".equalsIgnoreCase(tok.nextToken())) throw new
IOException(answer);
                else {
                  try { messages =
Integer.parseInt(tok.nextToken().trim()); } /* how to make a string into
an int*/
                  catch (Exception e) { messages = -1; }
                }
                return messages;
              }
             /* manda un messaggio al server
              * @param command è il comando da mandare
              */
              protected void sendCommand(String command) throws
IOException {
                sendCommand(command, true);
              }
              /*
               * manda un messaggio al server
               * @param command è il comando da mandare
               * @param showAnswer If it should get the answer or not
               */
              protected void sendCommand(String command, boolean
showAnswer) throws IOException {
                out.println(command);
                if(showAnswer == true) {
                  String answer = in.readLine();
                  if(answer.toLowerCase().startsWith("-err")) throw new
IOException(answer);
                }
              }
              /*
               * prende il messaggio specificato dal server
               * @param msg è il messaggio da prendere
               */
              public boolean getMessage(int msg) throws IOException {
                sendCommand("RETR " + msg, false);
                String answer = in.readLine();
                if(!answer.toLowerCase().startsWith("-err")) {
                  while(!".".equals(answer)) {
                    answer = in.readLine();
                    outFile.println(answer);
                  }
                  return true;
                }
                return false;
              }
              /**
               * cancella il messaggio specificato dal server
               * @param msg è il messaggio da cancellare
               */
              public void deleteMessage(int msg) throws IOException {
                sendCommand("DELE " + msg);
              }
            }
*************************************************************************************************
*************************************************************************************************
/* classe Post Office Protocol versione 3 */
              import  Pop3;
              import java.io.IOException;
              public class TestPop3 {
                public static void main(String args[]) {
                  try {
                  /* connessione al server '
netgate.maret.org
'
                   * con username 'guest' and password 'guest'
                   * i messaggi saranno salvati in '/inbox'
                   */
                    Pop3 pop = new Pop3("Mariux", "jvhi239zen1",
"151.15.196.222", "/inbox");
                    /* legge il numero di messaggi sul server */
                    int messages = pop.getMessageCount();
                    for(int j = 1; j <= messages ; j++) {
                      /* prende il messaggio */
                      pop.getMessage(j);
                      /* cancella il messaggio */
                      pop.deleteMessage(j);
                    }
                    /* uscita dal server */
                    pop.closeConnection();
                  }
                  catch (IOException ioe) { System.err.println(ioe); }
                }
              }
**********************************************************************************************

Salve ragazzi, vi chiedo cortesemente una mano..
Ciao, ora non posso: mandami tutto zippato in un file, con
opportuno bat che mi faccia vedere come tu compili e come
lo lanci, ok?
Stasera gli do un'occhiata :)
Bye