Tiempo atrás, vimos un ejemplo básico de Servidor y Cliente TCP en Python. Hoy veremos un ejemplo igual, pero en Java.
Incluso, pueden probar levantar el Servidor Python y el Cliente Java y ver que todo funciona de la misma forma, como debe ser; por algo ambos son "Sockets TCP" ¿no?
public class Servidor {
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 {
//Creo el socket server
s = new ServerSocket(9999);
//Invoco el metodo accept del socket servidor, me devuelve una referencia al socket cliente
sc = s.accept();
//Obtengo una referencia a los canales de escritura y lectura del socket cliente
b = new BufferedReader( new InputStreamReader ( sc.getInputStream() ) );
p = new PrintStream ( sc.getOutputStream() );
while ( true ) {
//Leo lo que escribio el socket cliente en el canal de lectura
mensaje = b.readLine();
System.out.println(mensaje);
//Escribo en canal de escritura el mismo mensaje recibido
p.println(mensaje);
if ( mensaje.equals("by")) {
break;
}
}
p.close();
b.close();
sc.close();
s.close();
} catch (IOException e) {
System.out.println("No puedo crear el socket");
}
}
}
public class Cliente {
public static void main(String[] args) {
Socket s;
PrintStream p;
BufferedReader b;
String host = "localhost";
int port = 9999;
String respuesta;
//Referencia a la entrada por consola (System.in)
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
//Creo una conexion al socket servidor
s = new Socket(host,port);
//Creo las referencias al canal de escritura y lectura del socket
p = new PrintStream(s.getOutputStream());
b = new BufferedReader ( new InputStreamReader ( s.getInputStream() ) );
while ( true ) {
//Ingreso un String por consola
System.out.print("Mensaje a enviar: ");
//Escribo en el canal de escritura del socket
p.println( in.readLine() );
//Espero la respuesta por el canal de lectura
respuesta = b.readLine();
System.out.println(respuesta);
if ( respuesta.equals("by")) {
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);
}
}
}
Suscribete al feed aquí
2 Respuestas para "Servidor y Cliente TCP en Java"
[...] como base el ejemplo de Servidor y Cliente TCP en Java vamos a crear un archivo ejecutable de Windows .EXE con el [...]
ola ta buenisimo tu prog pero una consulta yo recien me baje el mysql y el jdeveloper ya lo eh visto un poco, me puedes explicar como ejecutar tu ejemplo y asi entenderlo y hacer mi proyecto, se trata de una base de datos en mysql a la cual se conecta java por medio de sockets, el proyecto trata sobre cobro de servicio publico en los bancos y por eso deve ser software gratis asi que mi profesor pidio java y yo escoji mysql q creo seria lo mejor, muchas gracias por tu ayuda la espero lo antes posible
Comentarios: