0% encontró este documento útil (0 votos)
90 vistas

Chat en Java Mediante Sockets

El documento describe cómo crear un servidor y cliente en Java para la comunicación entre sockets. Define atributos y métodos para conectar el servidor a un puerto, enviar y recibir datos, e iniciar un hilo para recibir información del cliente. También crea un cliente similar al servidor excepto que se conecta a la IP y puerto del servidor en lugar de escuchar conexiones entrantes.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
90 vistas

Chat en Java Mediante Sockets

El documento describe cómo crear un servidor y cliente en Java para la comunicación entre sockets. Define atributos y métodos para conectar el servidor a un puerto, enviar y recibir datos, e iniciar un hilo para recibir información del cliente. También crea un cliente similar al servidor excepto que se conecta a la IP y puerto del servidor en lugar de escuchar conexiones entrantes.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Servidor.

Usaremos los siguientes atributos

private Socket miServicio;


private ServerSocket socketServicio;

private OutputStream outputStream;


private InputStream inputStream;

private DataOutputStream salidaDatos;


private DataInputStream entradaDatos;

private boolean opcion = true;

Mtodo de conexin

En primer lugar lo que tenemos que hacer es poner al ServerSocket a escuchar para
poder aceptar peticiones del cliente, para ello vamos a crear un mtodo pasndole
como parmetro el nmero de puerto

Usamos el constructor Serversocket(numeroPuerto) , al cual se le debe pasar como


parmetros un numero de puerto donde se pondr a escuchar recibir peticiones de los
clientes y llamamos a su mtodo accept() el cual cuando se conecte un cliente
aceptara la peticin de dicho cliente, hay que tener en cuenta que estas clases lanzan
excepcin por lo que hay capturarlo entre un try y un catch, cerramos conexin.

Con el Serversocket a la escucha en el puerto indicado tenemos que abrir los flujos de
datos para procesar la informacin que recibimos y enviamos para ello creamos dos
mtodo uno que enviara datos y otro que recibir.

Mara Dolores Lorite Valiente. 2DAM


public void conexion(int numeroPuerto) {
try {
socketServicio = new ServerSocket(numeroPuerto);
System.out.println("El servidor se esta escuchando en el
puerto: " + numeroPuerto);
miServicio = socketServicio.accept();

//Mtodos intermedios que no aparecen aqu

} catch (Exception ex) {


System.out.println("Error al abrir los sockets");
}
}

Mtodo enviar datos.

Se le pasara como parmetros un String el cual usara para recibir cadenas de texto para
envirselos al cliente, instanciamos la clase DataOutputStream el cual le pasaremos
como parmetro un OutputStream el cual se usara con mtodo llamado desde el socket
misServicio, escribimos en el con el mtodo writeUTF(datos) de la clase
DataOutputStream el cual le pasaremos como parmetro el String del mtodo
enviarDatos, limpiamos con el mtodo flush() y capturamos su excepcin.

Mtodo para recibir datos

public void recibirDatos() {


try {
inputStream = miServicio.getInputStream();
entradaDatos = new DataInputStream(inputStream);
System.out.println(entradaDatos.readUTF());
} catch (IOException ex) {
Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE
, null, ex);
}
}

Para que esto funcione tendremos que crear en el mtodo conexin un hilo que se encargue
de recibir la informacin que le envi el Cliente usando el mtodo recibirDatos de la clase
Servidor e iniciando el hilo que ejecutara cada vez que lleguen datos del cliente.

Mara Dolores Lorite Valiente. 2DAM


Adems, usaremos un scanner para que podamos aadir mediante lnea de comandos la
informacin a enviar.

Por ltimo en el servidor, creamos en MAIN a el que le pasamos el puerto de escucha al


Servidor:

public static void main(String[] args) {


Servidor serv = new Servidor();
serv.conexion(5555);
}

Cliente

La clase Cliente es igual a la clase servidor, excepto porque no tiene ServerSocket y en


el mtodo de conexin le paramos el puerto y la IP de la mquina a la que queremos
conectar, usando un Socket como constructor.

Mara Dolores Lorite Valiente. 2DAM

También podría gustarte