1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- program simplehttpserver;
- {$mode objfpc}{$H+}
- {$define UseCThreads}
- uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
- cthreads,
- {$ENDIF}{$ENDIF}
- sysutils, strutils,Classes, fphttpserver, fpmimetypes, testhttpserver;
- Type
- { TTestHTTPServer }
- THTTPServer = Class(TTestHTTPServer)
- Protected
- Procedure DoIdle(Sender : TObject);
- procedure DoWriteInfo(S: string);
- end;
- Var
- Serv : THTTPServer;
- { THTTPServer }
- procedure THTTPServer.DoIdle(Sender: TObject);
- begin
- // Writeln('Idle, waiting for connections');
- end;
- procedure THTTPServer.DoWriteInfo(S: string);
- begin
- Writeln(S);
- end;
- begin
- if IndexText(ParamStr(1),['-h','--help'])<>-1 then
- begin
- Writeln('Usage: ',ExtractFileName(ParamStr(0)),' [dir [port]]');
- Writeln('Default dir is binary location');
- Writeln('Default port is 8080');
- Halt(0);
- end;
- Serv:=THTTPServer.Create(Nil);
- try
- if ParamCount=0 then
- Serv.BaseDir:=ExtractFilePath(ParamStr(0))
- else
- Serv.BaseDir:=ParamStr(1);
- if ParamCount>1 then
- Serv.Port:=StrToIntDef(ParamStr(2),8080)
- else
- Serv.Port:=8080;
- {$ifdef unix}
- Serv.MimeTypesFile:='/etc/mime.types';
- {$endif}
- Serv.ThreadMode:=tmThreadPool;
- Serv.AcceptIdleTimeout:=10;
- Serv.OnAcceptIdle:[email protected];
- Serv.WriteInfo:[email protected];
- Serv.KeepAliveEnabled:=True;
- Serv.Active:=True;
- finally
- Serv.Free;
- end;
- end.
|