Lun Mar 18, 2013 12:38 pm
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:
Servidor:
Captura:
Saludos
Al code le puse algunos comentarios para facilitar el entendimiento del codigo, cualquier duda preguntes :)
Cliente:
- Código:
// 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:
// 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