Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema en socket con readLine()

Hola,
Estoy empezando a programar sockets y tengo un problema a la hora de leer datos con readLine().

En el proceso servidor, se pide al usuario (conectado a través de telnet) que introduzca un número. El código es éste:

ServerSocket socketConexion = new ServerSocket(12345);
Socket socketDatos = socketConexion.accept();

OutputStream s_fout = socketDatos.getOutputStream();
InputStream s_fin = socketDatos.getInputStream();
PrintWriter fout = new PrintWriter(s_fout);
BufferedReader fin = new BufferedReader(new InputStreamReader(s_fin));

fout.println("Elija su destino 0)Madrid 1)Barcelona");
fout.flush();
int destino = Integer.parseInt(fin.readLine());

Cuando el usuario introduce un número por teclado y pulsa ENTER, el servidor da el siguiente errror en la línea que dice " Integer.parseInt(fin.readLine());" ;

Exception in thread "Thread-1" java.lang.NumberFormatException: For input string: "ÿûÿû ÿûÿû'ÿýÿûÿý0

Parece que se están metiendo carácteres extraños al leer el readLine(). ¿Alguien sabe cómo solucionar esto?

Gracias.

agosto 19, 2013 | Registered Commenterinner83

Buenas,

Creo que lo que pasa es que telnet te esta hablando en su protocolo (vt100) y no te envia simplemente la informacion.
Comunicarse con Telnet no es tan trivial como lo planteas, aunque por suerte hay ya alguna libreria especifica que te puede ayudar:
http://sadun-util.sourceforge.net/telnet_library.html

No tengo muy claro como quieres hacerlo pero quizas tambien puede que te sirva plantearlo como un socket cliente a telnet. aqui un ejemplo chorras:
http://java-sql.blogspot.fr/2011/01/telnet-client.html


Un saludo

agosto 20, 2013 | Unregistered CommenterUnoPorAhi