mak
01.08.2024, 18:38
Привет,
Мало кто знает, что Delphi (да-да, ту самую Borland Delphi, даже старую версию Delphi 6 или Delphi 7, в которой перетягиваешь кнопочки на форму), можно использовать для создания веб сервера.
Например напишем простейший веб-сервер:
program WebApp;
{$APPTYPE CONSOLE}
uses
IdHTTPServer,
IdTCPServer,
IdCustomHTTPServer,
IdContext;
Type
TCommandHandler= class
protected
procedure DoCommandGet(AThread: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
end;
{$R *.res}
var Server:TIdHTTPServer ;
CH:TCommandHandler;
procedure TCommandHandler.DoCommandGet(AThread: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentText := '<html><head><title>Delphi WebApp</title></head><body><h1>It works!</h1><hr><p>Hello, world!</p></body></html>';
AResponseInfo.ContentType := 'text/plain';
end;
begin
Server := TIdHTTPServer.Create(nil);
CH := TCommandHandler.Create;
Server.OnCommandGet := CH.DoCommandGet;
Server.DefaultPort := 80;
Server.Active := True;
Readln;
end.
А обработчики уже придумаете по ходу дела. Если кому интересно, могу развивать эту тему ;)
Мало кто знает, что Delphi (да-да, ту самую Borland Delphi, даже старую версию Delphi 6 или Delphi 7, в которой перетягиваешь кнопочки на форму), можно использовать для создания веб сервера.
Например напишем простейший веб-сервер:
program WebApp;
{$APPTYPE CONSOLE}
uses
IdHTTPServer,
IdTCPServer,
IdCustomHTTPServer,
IdContext;
Type
TCommandHandler= class
protected
procedure DoCommandGet(AThread: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
end;
{$R *.res}
var Server:TIdHTTPServer ;
CH:TCommandHandler;
procedure TCommandHandler.DoCommandGet(AThread: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentText := '<html><head><title>Delphi WebApp</title></head><body><h1>It works!</h1><hr><p>Hello, world!</p></body></html>';
AResponseInfo.ContentType := 'text/plain';
end;
begin
Server := TIdHTTPServer.Create(nil);
CH := TCommandHandler.Create;
Server.OnCommandGet := CH.DoCommandGet;
Server.DefaultPort := 80;
Server.Active := True;
Readln;
end.
А обработчики уже придумаете по ходу дела. Если кому интересно, могу развивать эту тему ;)