ВУЗ:
Составители:
Рубрика:
- 48 -
Большинство отправляемых сервером клиенту сообщений содержат одну и
ту же информацию в одинаковом формате, поэтому удобно упростить от-
правление и форматирование этой информации. Для этого служит простая
процедуру SendFullMsg (кроме стандартных сообщений отправляются строки
заголовка, даты и времени, версию MIME, реализации сервера, эти данные
также выводятся пользователю на экран):
procedure TWbServe.SendFullMsg(aSendSock:_SOCKET;
iMsg, iNewState, aiEvent: Integer;
asAdditionalMsg: String);
var IsMsgStr: String;
begin
case iMsg of { Инициализировать сообщение с помощью указанного кода ответа }
200: IsMsgStr := 'HTTP/1.0 200 OK' + #13#10;
201: IsMsgStr := 'HTTP/1.0 201 Created' + #13#10;
202: IsMsgStr := 'HTTP/1.0 202 Accepted' + #13#10;
204: IsMsgStr := 'HTTP/1.0 204 No Content' + #13#10;
301: IsMsgStr := 'HTTP/1.0 301 Moved Permanently' + #13#10;
302: IsMsgStr := 'HTTP/1.0 302 Moved Temporarily' + #13#10;
304: IsMsgStr := 'HTTP/1.0 304 Not Modified' + #13#10;
400: IsMsgStr := 'HTTP/1.0 400 Bad Request' + #13#10;
401: IsMsgStr := 'HTTP/1.0 401 Unauthorized' + #13#10;
403: IsMsgStr := 'HTTP/1.0 403 Forbidden' + #13#10;
404: IsMsgStr := 'HTTP/1.0 404 Not Found' + #13#10;
500: IsMsgStr := 'HTTP/1.0 500 Internal Server Error' + #13#10;
501: IsMsgStr := 'HTTP/1.0 501 Not Implemented' + #13#10;
502: IsMsgStr := 'HTTF/1.0 502 Bad Gateway' + #13#10;
503: IsMsgStr := ‘HTTP/1.0 503 Service Unavailable' + #13#10;
end;
{ Добавить текущую дату и время }
IsMsgStr := IsMsgStr + 'Date: ' +
FormatDateTime('ddd, d mmm yyyy hh:mm:ss “CST”', Now());
{ Отправить клиенту это и добавить строку на экран для пользователя }
NetSocket.SocketSend(aSendSock, handle, aiEvent, IsMsgStr, SKT_NOOP);
mleSent.Lines.Add(IsMsgStr);
{ Создать две строки для сообщения клиенту о ПО, обслуживающее сей запрос }
IsMsgStr := 'MIME-Version: 1.0' + #13#10;
IsMsgStr := IsMsgStr + 'Server: Delphi Web Server v1.O' + #13#10;
{ Отправить эти две строки и то, что было передано в качестве строк
информации в дополнительном заголовке; не забыть добавить их на экран)
NetSocket.SocketSend(aSendSock, handle, aiEvent,
IsMsgStr + asAdditionalMsg, SKT_NOOP);
mleSent.Lines.Add (IsMsgStr + asAdditionalMsg) ;
{ Сбросить флаг статуса текущей команды до заданного значения состояния }
iiHTTPStatus := iNewState;
Большинство отправляемых сервером клиенту сообщений содержат одну и
ту же информацию в одинаковом формате, поэтому удобно упростить от-
правление и форматирование этой информации. Для этого служит простая
процедуру SendFullMsg (кроме стандартных сообщений отправляются строки
заголовка, даты и времени, версию MIME, реализации сервера, эти данные
также выводятся пользователю на экран):
procedure TWbServe.SendFullMsg(aSendSock:_SOCKET;
iMsg, iNewState, aiEvent: Integer;
asAdditionalMsg: String);
var IsMsgStr: String;
begin
case iMsg of { Инициализировать сообщение с помощью указанного кода ответа }
200: IsMsgStr := 'HTTP/1.0 200 OK' + #13#10;
201: IsMsgStr := 'HTTP/1.0 201 Created' + #13#10;
202: IsMsgStr := 'HTTP/1.0 202 Accepted' + #13#10;
204: IsMsgStr := 'HTTP/1.0 204 No Content' + #13#10;
301: IsMsgStr := 'HTTP/1.0 301 Moved Permanently' + #13#10;
302: IsMsgStr := 'HTTP/1.0 302 Moved Temporarily' + #13#10;
304: IsMsgStr := 'HTTP/1.0 304 Not Modified' + #13#10;
400: IsMsgStr := 'HTTP/1.0 400 Bad Request' + #13#10;
401: IsMsgStr := 'HTTP/1.0 401 Unauthorized' + #13#10;
403: IsMsgStr := 'HTTP/1.0 403 Forbidden' + #13#10;
404: IsMsgStr := 'HTTP/1.0 404 Not Found' + #13#10;
500: IsMsgStr := 'HTTP/1.0 500 Internal Server Error' + #13#10;
501: IsMsgStr := 'HTTP/1.0 501 Not Implemented' + #13#10;
502: IsMsgStr := 'HTTF/1.0 502 Bad Gateway' + #13#10;
503: IsMsgStr := ‘HTTP/1.0 503 Service Unavailable' + #13#10;
end;
{ Добавить текущую дату и время }
IsMsgStr := IsMsgStr + 'Date: ' +
FormatDateTime('ddd, d mmm yyyy hh:mm:ss “CST”', Now());
{ Отправить клиенту это и добавить строку на экран для пользователя }
NetSocket.SocketSend(aSendSock, handle, aiEvent, IsMsgStr, SKT_NOOP);
mleSent.Lines.Add(IsMsgStr);
{ Создать две строки для сообщения клиенту о ПО, обслуживающее сей запрос }
IsMsgStr := 'MIME-Version: 1.0' + #13#10;
IsMsgStr := IsMsgStr + 'Server: Delphi Web Server v1.O' + #13#10;
{ Отправить эти две строки и то, что было передано в качестве строк
информации в дополнительном заголовке; не забыть добавить их на экран)
NetSocket.SocketSend(aSendSock, handle, aiEvent,
IsMsgStr + asAdditionalMsg, SKT_NOOP);
mleSent.Lines.Add (IsMsgStr + asAdditionalMsg) ;
{ Сбросить флаг статуса текущей команды до заданного значения состояния }
iiHTTPStatus := iNewState;
- 48 -
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
