Article View: es.comp.lenguajes.java
Article #29713Re: Extra�eza en programaci�n cliente/servidor
From: Monkiki
Date: Mon, 27 Oct 1997 00:00
Date: Mon, 27 Oct 1997 00:00
45 lines
2848 bytes
2848 bytes
Soy yo otra vez:
Ya he dado con la tecla. Vereis, en los ejemplor del tutorial de Java de Sun de aplicaciones
cliente/servidor meten un poco la pata (�me quedo asombrado de mi propia inteligencia al darme
cuenta! 8-) ). La cosa va de un cliente que recoge los datos del teclado y se los env�a al servidor,
que hace como de chistoso. Hay una especie de gui�n y si lo sigue el cliente, el servidor hace lo
propio y al final resulta que es un chiste, por cierto, que es humo yanki y no hay qui�n le
encuentre la puta gracia, pero vamos... Pues la parte de cliente que toma los datos del teclado no
es 100% Pure Java, como dicen ellos:
StringBuffer linea = new StringBuffer(50);
while ((c = System.in.read()) != '\n') {
linea.append((char)c);
}
Esto funcionar� muy bien en Unix y cosas de esas, pero el m�gico mundo del DOS (Windows 95
inclusive) no se lleva muy bien con esta forma de pensar. En Unix, las l�neas de texto acaban con
"\n" (10 en Hex), pero en DOS acaban en "\r\n" (13 y 10 respectivamente en Hex). Pues la trampa est�
servida: leemos y leemos hasta que aparece el "\n", pero ya nos hemos tragado el "\r", con lo que la
cosa queda como si fueran dos l�neas, una del texto y la otra con el "\r". Y alg�n listo pensar�
�por qu� no pongo que lea del teclado hasta que lea el caracter "\r"? La respuesta es que en MS-DOS
funcionar�a, pero en Unix no. La soluci�n es utilizar la clase BufferedReader y su m�todo
readLine(), que dependiendo del sistema operativo hace que se tengan en cuenta "\r\n" o s�lo "\n":
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
String linea = new String(teclado.readLine());
NOTA para los puristas: Se supone que la entrada estanda, que es lo que realmente leemos con
System.in, se trata del teclado ;-).
�Aupa Java! �Muera ActiveX!
Vis�tame en:
http://www.redestb.es/personal/quickly (La p�gina de Monkiki)
E mail:
quickly@mx3.redestb.es
"Baco, por siempre loado,
os libre del cirr�tico mal y
del advenimiento gonoc�cico".
Technical Details
Message-ID:
<3451dbaf.7492491@news.redestb.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<344e54ae.3644188@news.redestb.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,2bbc334afaeb7c49 X-Google-Attributes: gid1116f3,public From: quickly@mx3.redestb.es (Monkiki) Subject: Re: Extra�eza en programaci�n cliente/servidor Date: 1997/10/27 Message-ID: <3451dbaf.7492491@news.redestb.es> X-Deja-AN: 285385626 References: <344e54ae.3644188@news.redestb.es> Organization: Soy muy desorganizado Reply-To: quickly@mx3.redestb.es Newsgroups: es.comp.lenguajes.java