Ejemplos Multithread Server C++ con boost

oFF-sIDE

Hola gente,

estoy programando un servidor en c++ que reciba conexiones por un socket (síncrono) y vaya creando hilos y derivándoles dichas conexiones conforme van entrando. Para ello estoy usando las librerías Boost para que sea portable a linux, pero por más ejemplos que busco sólo veo los que te dan ellos: Ejemplo servidor síncrono

El problema es que en los ejemplos no derivan ese hilo hacia otro thread, tan sólo escriben en el socket. Eso es lo que me está volviendo loco, que no sé cómo "bindear" esa conexión entrante a un nuevo hilo y ponerme de nuevo en modo escucha.

No quiero que perdáis el tiempo explicándomelo todo porque estoy súper pez con Boost y sería demasiado esfuerzo para vosotros y vergüenza para mi xD Sólo me gustaría saber si sabéis de algún ejemplo decente en algún lado que me sirva para aprender a manejarme poco a poco con esto de ir pasando conexiones a distintos hilos y quedarme esperando.

Gracias.

Soltrac

Solo te digo sin tener ni puta idea que pasar de síncrono a threads es un poco cutre teniendo la posibilidad de hacerlo asíncrono directamente (que no estoy seguro si tienes esa posibilidad).

oFF-sIDE

Está pensado como síncrono porque la única tarea de la clase servidor es crear los hilos y dentro de los hilos cada elemento se ejecutará de forma 100% independiente del hilo inicial donde estoy aceptando las conexiones.

r2d2rigo

No es boost, pero te vale: http://www.codeproject.com/KB/IP/winsockintro03.aspx

Atento a la parte de

    while(true)
    {
        client=accept(server,
            (struct sockaddr*)&from,&fromlen);
        AfxBeginThread(ClientThread,(LPVOID)client);	
    }	
oFF-sIDE

Tomo nota, se va directo a favoritos, gracias :)

Usuarios habituales

  • oFF-sIDE
  • r2d2rigo
  • Soltrac