| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > HTTP |
| Автор: akuscher 13.2.2008, 07:42 |
| В спецификации по HTTP 1.1 имеется такой подраздел: Процесс декодирования транспортного кода может быть представлен в виде псевдопрограммы: length := 0 read chunksize, chunkextention (if any) and CRLF while (chunksize > 0) { read chunkdata and CRLF append chunkdata to entitybody length := length + chunksize read chunksize and CRLF } read entityheader while (entityheader not empty) { append entityheader to existing header fields read entityheader } ContentLength := length Remove "chunked" from Transfer-Encoding Как я понимаю с ним нужно работать так: 1) встречаем первое шестнадцатиричное число read chunksize 2) читаем из сокета read chunkdata and CRLF 3) прибавляем прибавляем в счетчику длину прочитанных данных length := length + chunksize, но за исключением CRLF 4) встречаем следующее шестнадцатиричное число.... Вот все выше написанное иногда работает, а иногда нет. Что неправильно? |