Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подключение из Delphi к Web-серверу по протоколу HTTP. [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


serg222 ©   (2003-03-20 17:30:00) 

Имеется Web-сервер.
Я из Delphi подсоединяюсь к Web-серверу.
Использую стандартный компонент TClientSocket.
И посылаю на Web-сервер запрос в соответствии с протоколом HTTP.
GET http://www.SiteName.ru:80/HTTP/1.0
В ответ Web-сервер шлет мне ответ
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 20 Mar 2003 11:52:02 GMT
Content-type: text/html
X-Powered-By: PHP/4.2.3

Bodi Bodi Bodi Bodi Bodi Bodi
Bodi Bodi Bodi Bodi Bodi Bodi
Bodi Bodi Bodi Bodi Bodi Bodi

Данные в Delphi я считываю на событии TClientSocket.OnRead.
И добавляю их в глобальную переменную при каждом вызове этого события.
Если объем передаваемых данных большой, то это событие происходит несколько раз.
Вопрос.
Как при очередном вызове события TClientSocket.OnRead мне проверить, что приняты все данные или же еще нет?


Wonder   (2003-03-28 18:47:00) [1]

RFC 2068


Paul-M   (2003-03-28 18:42:00) [2]

2 Wonder
Ага! Вот про это я и говорил, только RFC № кактотам под рукой нету


Wonder   (2003-03-28 18:32:00) [3]

Hypertext Transfer Protocol -- HTTP/1.1

...

14.14 Content-Length

The Content-Length entity-header field indicates the size of the message-body, in decimal number of octets, sent to the recipient or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET.
...
Applications SHOULD use this field to indicate the size of the message-body to be transferred, regardless of the media type of the entity.
...


Paul-M   (2003-03-28 18:21:00) [4]

2 Palladin
Не обязательно. Если в тексте запроса стоит параметр
Connection: Keep-Alive, то сервер не закрывает соединение после выполнения запроса согласно RFC. Соединение может быть разорвано только после параметра запроса Connection: Close.
Это спецификация НТТР 1.1, другие не читал.
Это сделано для:
1. Получение изображений
2. Получения фреймов, скриптов в отдельных файлах и т.п.

Если получаешь HTML то логичто предположить что после тэга </BODY>
А еще проще - читай спецификацию протокола НТТР - там все есть )))


serg222   (2003-03-20 18:19:00) [5]

Большое спасибо


Palladin   (2003-03-20 17:54:00) [6]

OnDisconnect


Наверх

Титульная страница Поиск, карта сайта Написать письмо