Oppure

Loading
23/09/11 15:18
MagoAntò
Ciao a tutti!

Sto provando il seguente codice per creare un piccolo server:

import java.io.*;
import java.net.*;

public class EchoServer
{
    public static void main (String[] args)
    {
        try
        {
            ServerSocket s = new ServerSocket (8189);
            
            Socket incoming = s.accept();
            System.out.println ("Connessione avvenuta!");
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    incoming.getInputStream()));
            PrintWriter out = new PrintWriter (new PrintWriter(
                    incoming.getOutputStream(),true));
            
            out.println("Hello! Enter BYE to exit.");
            
            boolean done = false;
            while (!done)
            {
                String line = in.readLine();
                if (line==null)
                    done = true;
                else
                {
                    out.println("Echo: "+line);
                    
                    if (line.trim().equals("BYE"))
                    {
                        done = true;
                    }
                }
            }
            incoming.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}


ll codice compila ed esegue senza problemi. Il libro di testo a cui sto facendo riferimento (Core Java) dice di usare Telnet per testare l'applicazione: apro una console di comando e digito telnet 127.0.0.1 8189. La connessione avviene ma la console di comando da schermo nero, non visualizzando i messaggi di test che scrivo. Scrivendo "BYE" la connessione viene chiusa regolarmente (come da codice Java) ed ecco che la console di comando visualizza regolarmente il percorso C:\ ecc. ecc.

Come posso fare a visualizzare i messaggi inviati dal server sulla console?

Grazie in anticipo!
aaa
30/09/11 8:55
MagoAntò
Come non detto, la colpa è mia: ho sbagliato questo rigo

PrintWriter out = new PrintWriter (new PrintWriter(incoming.getOutputStream(),true));


Ho usato due "new PrintWriter", quello interno non andava messo. Mea culpa... 8-|
aaa