Piccolo problema server

di il
4 risposte

Piccolo problema server

Ciao a tutti! Ho realizzato un'applicazione che implementa un Socket. Quando un client si collega io leggo la stringa che mi passa tramite un readUTF(). Purtroppo insieme alla riga leggo anche tutti i caratteri di "backspace", "freccia sx e dx" quindi se il comando non è perfetto il software non gira. C'è un modo di eliminare questi caratteri?

4 Risposte

  • Re: Piccolo problema server

    lory1990 ha scritto:


    Purtroppo insieme alla riga leggo anche tutti i caratteri di "backspace", "freccia sx e dx"
    Eh? Questi caratteri di controllo di norma non ci sono nelle stringhe (nemmeno se le chiedi in input con es. Scanner(System.in) ).
    Quindi chi c'è dall'altra parte? (cioè chi è il client)
  • Re: Piccolo problema server

    Il client sono io con il telnet, nel log che ho creato viene fuori questo:
    http://postimg.org/image/bwcei19ut

    e chiaramente il software non rispone come dovrebbe.
    Per completezza riporto anche qualche frammento del codice:
    
    InputStream  = new BufferedReader(new InputStreamReader(Socket.getInputStream(), "UTF-8")); 
    ... code ...
    String S = InputStream.readLine();                
    if(Logger.isInfoEnabled()) Logger.info(getUserName() + Address.getHostAddress() + " - Input string: " + S);
    
  • Re: Piccolo problema server

    lory1990 ha scritto:


    il client sono io con il telnet
    Il telnet protocol è un protocollo specifico per creare connessioni "virtual terminal". Non è per trasferire solo banali e semplici righe di testo.
    A volte un client telnet si usa (in modo limitato) per "debuggare" il funzionamento di un altro protocollo, tipico ad esempio il SMTP per l'invio delle email (è capitato anche a me di fare così in passato).
    Se sono connesso ad un server SMTP tramite telnet, i comandi che digito devo stare attento a scriverli! Non posso infatti fare backspace ecc... andrei a ravanare quel comando e il server SMTP sicuramente mi risponderebbe picche a quel comando. Perché? Perché SMTP non "sa" nulla di emulazione di terminali, comandi di escape, ecc...

    Quindi nel tuo caso, visto che la tua intenzione non è di fare un server Telnet, allora se proprio vuoi usare telnet, presta attenzione. Altrimenti il problema è quello: l'uso di un client inappropriato.
  • Re: Piccolo problema server

    Perfetto grazied ella spiegazione! Telent lo uso solo per debug; il client "vero" verrà creato in seguito e quindi non ci saranno problemi!

    Grazie!
Devi accedere o registrarti per scrivere nel forum
4 risposte