Recebendo dados HTTP em pedaços com o Winsock

Estou tendo problemas para ler alguns dados de resposta HTTP em pedaços usando o winsock. Envio uma solicitação bem e recebo de volta o seguinte:

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. Neste ponto, no entanto, apenas trava. Eu tenho o ouvinte executando em um loop infinito, mas nada é captad

Eu acho que é um problema de C ++, mas também pode estar relacionado ao fato de eu empurrar a conexão através do stunnel para envolvê-la dentro do HTTPS. Eu tenho um aplicativo de teste usando algumas bibliotecas em c # que funciona perfeitamente através de stunnel. Estou confuso sobre o motivo pelo qual meu loop não está recebendo os dados em blocos C ++ após a recv inicial.

Este é o loop em questão ... é chamado após a resposta em pedaços ok acima ...

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;
    }     

}

Alguma ideia

questionAnswers(2)

yourAnswerToTheQuestion