Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sockety - pobieranie pliku

Ostatnio zmodyfikowano 2012-12-23 03:42
Autor Wiadomość
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:
C/C++
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.
P-71708
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.
P-71712
« 1 »
  Strona 1 z 1