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