Utilizando Socket en Java

Iniciado por Expermicid, Enero 17, 2013, 02:30:14 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Investigando un poco sobre socket en java, pude lograr este pequeño ejemplo en donde se estrablece una conexion Servidor-Cliente.

Al code le puse algunos comentarios para facilitar el entendimiento del codigo, cualquier duda preguntes :)

Cliente:

Código: java
// importamos librerias necesarias
import java.io.*;
import java.net.*;

class Cliente {

static final String HOST = "localhost"; // host a conectar
static final int PUERTO = 5000; // puerto de conexion
static String entrada = "";

public Cliente( ) {

try{

// creamos un socket asociados al host y puerto
Socket sCliente = new Socket(HOST, PUERTO);
// InputStream nos sirve leer datos
InputStream aux = sCliente.getInputStream();
// DataInputStream permite recibir datos de tipos normales
DataInputStream datos = new DataInputStream(aux);
do { // bucle para recibir datos hasta que entrada sea 'End'
// recibimos los datos
entrada = datos.readUTF();
// imprimimos los datos
System.out.println("Recibido: " + entrada);
} while(!entrada.equals("End")); // comprobamos que entrada no sea 'End'
// cerramos la conexion
sCliente.close();

} catch( Exception e ) {

System.out.println( e.getMessage() );

}

}

// metodo Main
public static void main( String[] arg ) {

new Cliente();

}

}


Servidor:

Código: java
// importamos librerias necesarias
import java.io.* ;
import java.net.* ;

class Servidor {

static final int PUERTO = 5000; // puerto de conexion
static String sTexto = "";

public Servidor() {

try {

System.out.println("A la espera de algun cliente\n");

// creamos un socket asociados al puerto
ServerSocket sServidor = new ServerSocket(PUERTO);
// quedamos a la espera de la conexion de algun cliente para aceptarlo
Socket sCliente = sServidor.accept();
// OutputStream nos sirve enviar datos
OutputStream aux = sCliente.getOutputStream();
// DataOutputStream permite enviar datos de tipos normales
DataOutputStream datos = new DataOutputStream(aux);

// usamos la clase BufferedReader para leer datos desde teclado
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Cliente Conectado :)\n");
do { // bucle para enviar datos hasta que entrada sea 'End'
System.out.print(">>> ");
// leemos los datos
sTexto = entrada.readLine();
// escribimos los datos
datos.writeUTF(sTexto);
} while(!sTexto.equals("End")); // comprobamos que entrada no sea 'End'
// cerramos la conexion
sCliente.close();

} catch( Exception e ) {

System.out.println(e.getMessage());

}

}

// metodo Main
public static void main( String[] arg ) {

new Servidor();

}

}


Captura:



Saludos