ВУЗ:
Составители:
Рубрика:
- 43 -
end;
{ Передать команду и параметр процедуре CheckCommandMsg }
CheckCommandMsg(IsCommand, IsMessage);
end;
{ Любые дополнительные строки не анализируются в этом
приложении, поэтому просто вывести их на экран }
while NetSocket.GetLine(TempBuffer, ReceiveBuffer) do
begin
mleReceived.Lines.Add(StrPas(TempBuffer));
end;
{ Осталось ли что-нибудь? Если да, поместить его в буфер захвата }
if (Length(StrPas(TempBuffer)) > 0) then
begin
if (Length(isHoldBuffer) > 0) then
isHoldBuffer := isHoldBuffer + StrPas(TempBuffer)
else
isHoldBuffer := StrPas (TempBuffer) ,
end;
end;
end; { конец ReadCommandMsg }
После приема команды и ее аргументов необходимо определить, есть ли в
списке маркер HTTP 1.0 (иначе имеем HTTP 0.9). Процедура CheckCom-
mandMsg проверяет, какая команда получена сервером:
procedure TWbServe.CheckCommandMsg(asCommand, asArguments: String);
var IbCmdFound: Boolean; liSpacePos: Integer;
begin
{ Инициализировать флаг обнаруженной команды значением FALSE }
IbCmdFound := FALSE;
{ Найден ли индикатор HTTP 1.0 ? }
if (Pos(‘НТТР/1.0', asArguments) > 0) then
begin
{ Да, отметить этот запрос как полный (HTTP 1.0) }
iblsFullRequest := TRUE;
{ Теперь удалить индикатор HTTP 1.0 из имени файла)
liSpacePos := Pos(' ', asArguments);
if (liSpacePos > 0) then
isFileName := Copy(asArguments, 1, (liSpacePos — 1));
end
else
begin
{ Нет индикатора HTTP 1.0, поэтому необходимо
обрабатывать этот запрос как HTTP 0.9 }
iblsFullRequest := FALSE;
isFileName := asArguments;
end; { Передать команду и параметр процедуре CheckCommandMsg } CheckCommandMsg(IsCommand, IsMessage); end; { Любые дополнительные строки не анализируются в этом приложении, поэтому просто вывести их на экран } while NetSocket.GetLine(TempBuffer, ReceiveBuffer) do begin mleReceived.Lines.Add(StrPas(TempBuffer)); end; { Осталось ли что-нибудь? Если да, поместить его в буфер захвата } if (Length(StrPas(TempBuffer)) > 0) then begin if (Length(isHoldBuffer) > 0) then isHoldBuffer := isHoldBuffer + StrPas(TempBuffer) else isHoldBuffer := StrPas (TempBuffer) , end; end; end; { конец ReadCommandMsg } После приема команды и ее аргументов необходимо определить, есть ли в списке маркер HTTP 1.0 (иначе имеем HTTP 0.9). Процедура CheckCom- mandMsg проверяет, какая команда получена сервером: procedure TWbServe.CheckCommandMsg(asCommand, asArguments: String); var IbCmdFound: Boolean; liSpacePos: Integer; begin { Инициализировать флаг обнаруженной команды значением FALSE } IbCmdFound := FALSE; { Найден ли индикатор HTTP 1.0 ? } if (Pos(‘НТТР/1.0', asArguments) > 0) then begin { Да, отметить этот запрос как полный (HTTP 1.0) } iblsFullRequest := TRUE; { Теперь удалить индикатор HTTP 1.0 из имени файла) liSpacePos := Pos(' ', asArguments); if (liSpacePos > 0) then isFileName := Copy(asArguments, 1, (liSpacePos — 1)); end else begin { Нет индикатора HTTP 1.0, поэтому необходимо обрабатывать этот запрос как HTTP 0.9 } iblsFullRequest := FALSE; isFileName := asArguments; - 43 -
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »