Sockety - pobieranie pliku
Ostatnio zmodyfikowano 2012-12-23 03:42
akcza Temat założony przez niniejszego użytkownika |
Sockety - pobieranie pliku » 2012-12-23 00:13:34 Witam mam problem z pobraniem pliku .exe z serwera Kod: string otrzymane; char buffer[ 1024 * 1024 ]; fstream program; program.open( "program.exe", ios::out | ios::binary ); wyslij( "GET /pobieraczek/program.exe HTTP/1.1\r\nHost: localhost\r\n\r\n" ); int i = 0; while( recv( sock, buffer, sizeof( buffer ), 0 ) ) { i++; if( i == 1 ) { otrzymane =( string ) buffer; otrzymane.erase( 0, otrzymane.find( "\r\n\r\n" ) + 4 ); } program.write( buffer, sizeof( buffer ); }
Chcąc ściągnąć plik np. 38kb, zapisuje mi się plik ważący ponad 500mb. Wiecie może co jest nie tak? Reszta kodu jest dobra, więc wkleiłem tylko najistotniejszy fragment. |
|
DejaVu |
» 2012-12-23 03:42:37 1. Wkleiłeś kod, który ma błędy składniowe. 2. W przedstawionym problemie postać danych odbieranych jest nieznana. 3. Wątpliwy jest zapis rzutowania tablicy char na string. 4. Zapisujesz zawsze cały bufor, a nie tyle danych ile przyszło. |
|
« 1 » |