Está usted en Indice > Construcción > Lenguajes > Java > Lecciones y Paso a Paso > Leer y Escribir en un Socket en Java
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Leer y Escribir en un Socket en Java

El siguiente programa es un ejemplo sencillo de cómo establecer una conexión entre un programa cliente y otro servidor utilizando sockets. La clase Socket del paquete java.net es una implementación independiente de la plataforma de un cliente para un enlace de comunicación de dos vías entre un cliente y un servidor. La clase Socket se sitúa en la parte superior de una implementación dependiente de la plataforma, ocultando los detalles de los sistemas particulares a un programa Java. Utilizando la clase java.net.Socket en lugar de tratar con código nativo, los programas Java pueden comunicarse a través de la red de una forma independiente de la plataforma.

Este programa cliente, EchoTest, conecta con el Echo del servidor (en el port 7) mediante un socket. El cliente lee y escribe a través del socket. EchoTest envía todo el texto tecleado en su entrada estandard al Echo del servidor, escribiéndole el texto al socket. El servidor repite todos los caracteres recibidos en su entrada desde el cliente de vuelta a través del socket al cliente. El programa cliente lee y muestra los datos pasados de vuelta desde el servidor.

import java.io.*;
import java.net.*;

public class EchoTest {
public static void main(String[] args) {
Socket echoSocket = null;
DataOutputStream os = null;
DataInputStream is = null;
DataInputStream stdIn = new DataInputStream(System.in);

try {
echoSocket = new Socket("taranis", 7);
os = new DataOutputStream(echoSocket.getOutputStream());
is = new DataInputStream(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 && is != null) {
try {
String userInput;

while ((userInput = stdIn.readLine()) != null) {
os.writeBytes(userInput);
os.writeByte('n');
System.out.println("echo: " + is.readLine());
}
os.close();
is.close();
echoSocket.close();
} catch (IOException e) {
System.err.println("I/O failed on the connection to: taranis");
}
}
}
}

Paseemos a través del programa e investiguemos las cosas interesantes.

Las siguientes tres líneas de código dentro del primer bloque try del método main() son críticos -- establecen la conexión del socket entre el cliente y el servidor y abre un canal de entrada y un canal de salida sobre el socket.

echoSocket = new Socket("taranis", 7);
os = new DataOutputStream(echoSocket.getOutputStream());
is = new DataInputStream(echoSocket.getInputStream());



Usuarios que han visto este tema también han visto...

- Entrada y Salida estándar en Java
- Conectar Java con MySQL en NetBeans
- Qué Puedes Hacer Con EJB3 (primera parte)
- Escribir Applets paso a paso
- Cómo crear una clase en Java que lea desde el teclado.


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 30-08-2008 a las 13:38:13