Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Proceso servidor con multiples clientes en C

Estas en el tema de Proceso servidor con multiples clientes en C en el foro de C/C++ en Foros del Web. Hola, necesito desarrollar un proceso servidor de conexiones que soporte multiples clientes. Alguna idea de como? Recien estoy aprendiendo C y se me complica un ...
  #1 (permalink)  
Antiguo 27/04/2013, 06:54
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Proceso servidor con multiples clientes en C

Hola, necesito desarrollar un proceso servidor de conexiones que soporte multiples clientes. Alguna idea de como? Recien estoy aprendiendo C y se me complica un poco. Cualquier ayuda es bienvenida!
  #2 (permalink)  
Antiguo 27/04/2013, 07:57
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Proceso servidor con multiples clientes en C

Puedes hacerlo con threads o puedes hacerlo con notificaciones asincronas de eventos de red (normalmente no se recomiendan los threads para eso).

La libreria de sockets ya provee las funciones necesarias; en windows una vez tienes creado y habilitado el socket (socket, bind) llamas a WSAAsyncSelect y le indicas las notificaciones asincronas que quieres recibir, p.ej. FD_ACCEPT para aceptar clientes, FD_READ para lectura de peticiones, etc... Cada cliente aceptado lo guardas en una lista y en cada notificacion recibes el indentificador del socket que genera ese evento de forma que lo buscas en la lista y ejecutas la operacion referida al evento. Es mas complejo de explicar que de implementar.

Esta funcion forma parte de winsock2, y puedes encontrar mas informcion en la 'Windows Sockets 2 Application Program Interface' o seguramente en msdn. Si no estas trabajando en windows siento no ser de mas ayuda (y creo recordar que la guia beej no cubre esto de los eventos asincronos para servidores).

Saludos
vosk

Etiquetas: multiples, proceso, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:30.