私はソケットを使用してC++を使用して、コンソールアプリケーションを作成し、サーバへのHTTP GETリクエストを送信したが、応答は私のバッファInfactは1000000より大きくHTMLファイルですよ:char buffer[1000000];
が小さすぎます。 のサイズよりも大きいデータをサーバーから受信する必要があります。C++を使用してrecv()関数でビッグデータを受け取る方法は?
私はこのコードを使用しますが、より大きな応答を受け取る方法は何ですか?私は、コードとexplenationsおかげで私を助けてください、このプログラミングの分野で初心者だ:
char buffer[1000000];
int nDataLength;
while ((nDataLength = recv(Socket, buffer, 1000000, 0)) > 0) {
int i = 0;
while (buffer[i] >= 32 || buffer[i] == '\n' || buffer[i] == '\r') {
myString += buffer[i];
i += 1;
}
}
cout << myString << "\n";
使用大きなバッファ.... – jpo38
1000000 char配列 –
何 'recv'リターンに許可最大サイズは?数字または 'SOCKET_ERROR'(-1)。小さなバッファは問題ではないはずです。あなたは 'recv'への呼び出しごとに部分的な答えを読んで、ある時点ですべてのデータを受け取るようにしてください。 'cout <<" recv returned "<< nDataLength << endl"をループの中に入れて、データを受け取ったかどうかを確認してください。 – jpo38