Отделить файл от HTPP заголовка

Тема в разделе "WASM.BEGINNERS", создана пользователем _nic, 12 дек 2009.

  1. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    Как это сделать если нету content-length ?
    Я пытаюсь примерно так:
    Код (Text):
    1. ..................................................................
    2.       rec=0;acum=0;
    3.       for(;;)
    4.       {
    5.          rec=recv(s,Sr,1024*1024,0);
    6.          Sr+=rec;
    7.          acum=acum+rec;
    8.          if(rec==0){Sr-=acum;break;}
    9.       }//гружу картинку
    10.       closesocket(s);
    11.       alen=(strlen(Sr)-strlen(strstr(Sr,"\r\n\r\n")))+4;
    12.       Sr+=alen;//отрезаю http заголовок
    13.       Graphics::TBitmap * Bitmap = new Graphics::TBitmap;
    14.       TJPEGImage * examp = new TJPEGImage;
    15.       TMemoryStream *stM = new TMemoryStream;
    16.       br=acum-alen;//вычисляю размер картинки
    17.       memcpy(img,Sr,br);//копирую её во временный буфер
    18.       stM->Read(img,br);
    19.       examp->LoadFromStream(stM);//а тут ошибка 42
    20.       Bitmap->Assign(examp);
    21.       PaintBox1->Canvas->Draw(59,59,Bitmap);
    22.       delete examp;
    23.       delete Bitmap;
    24.       delete stM;
    25.       Sr-=alen;
    26. ....................................................................
    но получается некорректный набор байт.Даже если сохранить на диск то нечитается.
     
  2. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    Что ни у кого нет никаких идей?Помогите плз мне косяк найти :dntknw: Смотрел сниффером картинка 1405 байт но в моем коде расчет происходит как 1417 байт.Откудого могут быть левые 12 байт???
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    ошибка в строке
    Код (Text):
    1. alen=(strlen(Sr)-strlen(strstr(Sr,"\r\n\r\n")))+4;
     
  4. gEnIuS_99

    gEnIuS_99 New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2009
    Сообщения:
    28
    Качество исходника - жуть. Прокомментируйте нормально код, разделите его на логические блоки, тогда и ошибка сразу же очевидной станет.