12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- program HttpServerService;
- uses
- SysUtils,
- Quick.Commons,
- Quick.Logger.Intf,
- Quick.Console,
- Quick.AppService,
- Quick.HttpServer,
- Quick.HttpServer.Request,
- Quick.HttpServer.Response,
- HttpServerService.Logger;
- type
- TMyHttpServer = class(THttpServer)
- public
- procedure ProcessRequest(aRequest: IHttpRequest; aResponse: IHttpResponse); override;
- end;
- procedure TMyHttpServer.ProcessRequest(aRequest: IHttpRequest; aResponse: IHttpResponse);
- begin
- aResponse.ContentText := 'Hello world!';
- end;
- var
- HttpServer : TMyHttpServer;
- Port : Integer;
- Logger : TQuickLogger;
- begin
- try
- {$IFNDEF FPC}
- ReportMemoryLeaksOnShutdown := True;
- {$ENDIF}
- //run as console
- Logger := TQuickLogger.Create;
- Logger.Init;
- if not AppService.IsRunningAsService then
- begin
- //create server
- cout('Init server...',etInfo);
- if ParamCount > 0 then
- begin
- Integer.TryParse(ParamStr(1),Port)
- end;
- //start server
- if Port = 0 then Port := 8080;
- HttpServer := TMyHttpServer.Create('127.0.0.1',Port,False,Logger);
- try
- HttpServer.Start;
- //Wait for Exit
- cout(' ',ccWhite);
- cout('Press [Enter] to quit',ccYellow);
- ConsoleWaitForEnterKey;
- finally
- HttpServer.Free;
- end;
- end
- else //run as a service
- begin
- AppService.DisplayName := 'Remote Server';
- AppService.ServiceName := 'RemoteServerSvc';
- AppService.CanInstallWithOtherName := True;
- HttpServer := TMyHttpServer.Create('127.0.0.1',Port,False,Logger);
- AppService.OnStop := @HttpServer.Free;
- AppService.OnExecute := @HttpServer.Start;
- AppService.CheckParams;
- end;
- except
- on E: Exception do
- Writeln(E.ClassName, ': ', E.Message);
- end;
- end.
|