jueves, 14 de mayo de 2009

Ejemplo Sencillo Java Socket

--------------------------------------------
Servidor
--------------------------------------------

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServidorSocket {

public static void main(String[] args) {

ServerSocket s; //Socket servidor
Socket sc; //Socket cliente
PrintStream p; //Canal de escritura
BufferedReader b; //Canal de Lectura
String mensaje;

try {

s = new ServerSocket(9999);
sc = s.accept();
b = new BufferedReader( new InputStreamReader ( sc.getInputStream() ) );
p = new PrintStream ( sc.getOutputStream() );

while ( true ) {
mensaje = b.readLine();
System.out.println(mensaje);

p.println(mensaje.toUpperCase());

if ( mensaje.equals("salir")) {
break;
}
}

p.close();
b.close();
sc.close();
s.close();
} catch (IOException e) {
System.out.println("No puedo crear el socket");
}
}

}

------------------------------------------------------------------
Cliente
------------------------------------------------------------------

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClienteSocket {

public static void main(String[] args) {

Socket s;
PrintStream p;
BufferedReader b;

String host = "localhost";
int port = 9999;
String respuesta;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

try {

s = new Socket(host,port);

p = new PrintStream(s.getOutputStream());
b = new BufferedReader ( new InputStreamReader ( s.getInputStream() ) );

while ( true ) {

System.out.print("Mensaje a enviar: ");

p.println( in.readLine() );

respuesta = b.readLine();

System.out.println(respuesta);
if ( respuesta.equals("salir")) {
break;
}
}
p.close();
b.close();
s.close();

} catch (UnknownHostException e) {
System.out.println("No puedo conectarme a " + host + ":" + port);
} catch (IOException e) {
System.out.println("Error de E/S en " + host + ":" + port);
}
}
}

No hay comentarios: