Como una de las asignaciones tenemos que implementar un servidor muy simple en C con algunos clientes. La idea es que al usar las colas IPC del sistema V creamos una cola donde los clientes se registran y luego para cada cliente hay una cola con mensajes. Me pregunto un poco sobre la parte del servidor. Debería tener algo como esto:Servidor muy simple en C
while(1)
{
//some queue using code
sleep(100);
}
por lo que para cada intervalo de tiempo puedo comprobar cada cola y hacer lo que tengo que hacer, o tal vez debería usar señales para informar del servidor que al menos una de las colas está listo para ser administrado.
¿Cómo se hace en los servidores normales, tienen algún intervalo de tiempo después del cual verifican todo lo que necesitan hacer o hay una forma más adecuada de hacerlo?
El código de red típico en C generalmente se hace con algo como ['select()'] (http://stackoverflow.com/questions/4171270/select-function-in-socket-programming), que está basado en eventos . Aquí hay una guía bastante buena (al menos cuando la usé): http://beej.us/guide/bgnet/ – birryree
¿Funcionan las funciones select() con id's de colas System V? – Andna
No estoy seguro de eso (no he tocado las cosas del Sistema V en probablemente 7 años), pero parte de la guía que he vinculado anteriormente también analiza el uso de las colas del sistema V: http://beej.us/guide /bgipc/output/html/multipage/mq.html Aunque creo que en su caso, lo que haría es hacer que los clientes se conecten y seleccionen en sus socket/descriptores, y administrar una cola para ellos (en lugar de 'select()' - ing en la cola). – birryree