Recibiendo datos HTTP fragmentados con Winsock

Tengo problemas para leer algunos datos de respuesta HTTP fragmentados con winsock. Envío una solicitud y recibo lo siguiente:

HTTP/1.1 200 OK
Server: LMAX/1.0
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Date: Mon, 29 Aug 2011 16:22:19 GMT

using winsock recv. En este punto, sin embargo, simplemente se cuelga. Tengo el oyente ejecutándose en un bucle infinito, pero nunca se recoge nada.

Creo que es un problema de C ++, pero también podría estar relacionado con el hecho de que estoy presionando la conexión a través de stunnel para envolverlo dentro de HTTPS. Tengo una aplicación de prueba que usa algunas bibliotecas en C # que funciona perfectamente a través de stunnel. No sé por qué mi bucle no recibe los datos fragmentados de C ++ después de la recepción inicial.

Este es el bucle en cuestión ... se llama después de la respuesta de ok fragmentada anterior ...

while(true)
{
    recvBuf= (char*)calloc(DEFAULT_BUFLEN, sizeof(char)); 
    iRes = recv(ConnectSocket, recvBuf, DEFAULT_BUFLEN, 0);
    cout << WSAGetLastError() << endl;
    cout << "Recv: " << recvBuf << endl;
    if (iRes==SOCKET_ERROR)
    {
        cout << recvBuf << endl;
        err = WSAGetLastError();
        wprintf(L"WSARecv failed with error: %d\n", err);
        break;
    }     

}

¿Algunas ideas

Respuestas a la pregunta(2)

Su respuesta a la pregunta