Cola de Mensajes POSIX

download Cola de Mensajes POSIX

of 3

Transcript of Cola de Mensajes POSIX

Marco Molina, Edison BarzalloCola de mensajes POSIXObjetivos: Investigar y entender lo que son las colas de mensajes POSIX, Realizar una aplicacin que implemente un chat a travs de sockets en JAVA.Introduccin:En el siguiente documento se presenta una breve descripcin de sockets en java y colas de mensajes en POSIX. DefinicinEs un buzn intermedio donde se pueden dejar y recoger mensajes, dichos mensajes pueden enviar y recibir varios procesos [1]. Las colas de mensajes permiten efectuar comunicacin asncrona, indirecta y simtrica entre hilos o procesos. Una cola de mensajes puede tener varios escritores y lectores, las colas tienen un nombre. Cada cola tiene una espacio de memoria asociada: Si la cola se llena se bloquea el emisor, esto se puede anular. El receptor se bloque en caso de que el espacio de memoria este vaco. En caso de existir varios hilos varios hilos bloqueados se reanuda uno arbitrariamente, se puede especificar que se reanude el ms prioritario [2]. Llamadas al sistema de POSIX para gestin de colas de mensajes:

Crear y abrir una cola de mensajesEjemplo: mqd_t mq_open(char *name, int flag, mode_t mode,struct mq_attr *attr)mqd_t mq_open(char *name, int flag, mode_t mode, mq_attr *attr); El primer argumento especifica el nombre de la cola Sigue la convencin de nombrado de archivos man 7 mq_overview El segundo argumento especifica los flags de la cola (definidos en fnctl.h): O_CREAT Crea una cola si no existe O_RDONLY Crea una cola para lectura O_WRONLY Crea una cola para escritura O_RDWR Crea una cola para lectura y escritura O_NONBLOCK Envo y recepcin no bloqueante

SOCKETS

Los sockets son un sistema de comunicacin entre procesos de diferentes mquinas de una red [3].

JAVA Sockets

El paquete java.net de la plataforma Java proporciona una clase Socket, la cualimplementa una de las partes de la comunicacin bidireccional entre un programa Java y otro programa en la red[3].

Modelo de comunicaciones con Java

El servidor establece un puerto y espera durante un cierto tiempo (timeout segundos), a que el cliente establezca la conexin. Cuando el cliente solicite una conexin, el servidor abrir la conexin socket con el mtodo accept(). El cliente establece una conexin con la mquina host a travs del puerto que se designe en puerto El cliente y el servidor se comunican con manejadores InputStream y OutputStream[3].

Bibliografa:[1] http://isa.uniovi.es/~ialvarez/Curso/cptr/POSIX_senyales_relojes_colas_de_mensajes.pdf pg. 4.[2] http://laurel.datsi.fi.upm.es/~ssoo/STR/Mensajes.pdf diapositiva 34.[3] http://www.dlsi.ua.es/asignaturas/sid/JSockets.pdf