Cambios en el JDK 1.1:
El ejemplo EchoTest
El ejemplo
EchoTest utiliza dos veces el método
DataInputStream.readLine. Este método ha sido anulado en el JDK 1.1 porque no convierte correctamente los bytes en caracteres. La mayoría de los programas que uitilizan
DataInputStream.readLine pueden hacer un cambio sencillo para utilizar el mismo método de la nueva clase
BufferedReader. Simplemente reemplaza el código de:
DataInputStream d = new DataInputStream(in);
con este:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
EchoTest es uno de esos programas en los que se puede realizar este sencillo cambio. Aquí tienes la nueva versión de
EchoTest:
import java.io.*;
import java.net.*;
public class EchoTest {
public static void main(String[] args) {
Socket echoSocket = null;
DataOutputStream os = null;
BufferedReader br = null;
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
try {
echoSocket = new Socket("taranis", 7);
os = new DataOutputStream(echoSocket.getOutputStream());
br = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis");
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: taranis");
}
if (echoSocket != null && os != null && br != null) {
try {
String userInput;
while ((userInput = stdIn.readLine()) != null) {
os.writeBytes(userInput);
os.writeByte('\n');
System.out.println("echo: " + br.readLine());
}
os.close();
br.close();
echoSocket.close();
} catch (IOException e) {
System.err.println("I/O failed on the connection to: taranis");
}
}
}
}
Ozito