🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #29713

Re: Extra�eza en programaci�n cliente/servidor

#29713
From: Monkiki
Date: Mon, 27 Oct 1997 00:00
45 lines
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-mail
References: <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