13 IdHTTPWebBrokerBridge,
16 WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule},
17 ServerConst1 in 'ServerConst1.pas';
21 function BindPort(APort: Integer): Boolean;
23 LTestServer: IIPTestServer;
27 LTestServer := PeerFactory.CreatePeer('', IIPTestServer) as IIPTestServer;
28 LTestServer.TestOpenPort(APort, nil);
34 function CheckPort(APort: Integer): Integer;
36 if BindPort(APort) then
42 procedure SetPort(const AServer: TIdHTTPWebBrokerBridge; APort: String);
44 if not AServer.Active then
46 APort := APort.Replace(cCommandSetPort, '').Trim;
47 if CheckPort(APort.ToInteger) > 0 then
49 AServer.DefaultPort := APort.ToInteger;
50 Writeln(Format(sPortSet, [APort]));
53 Writeln(Format(sPortInUse, [APort]));
56 Writeln(sServerRunning);
60 procedure StartServer(const AServer: TIdHTTPWebBrokerBridge);
62 if not AServer.Active then
64 if CheckPort(AServer.DefaultPort) > 0 then
66 Writeln(Format(sStartingServer, [AServer.DefaultPort]));
67 AServer.Bindings.Clear;
68 AServer.Active := True;
71 Writeln(Format(sPortInUse, [AServer.DefaultPort.ToString]));
74 Writeln(sServerRunning);
78 procedure StopServer(const AServer: TIdHTTPWebBrokerBridge);
80 if AServer.Active then
82 Writeln(sStoppingServer);
83 AServer.Active := False;
84 AServer.Bindings.Clear;
85 Writeln(sServerStopped);
88 Writeln(sServerNotRunning);
92 procedure WriteCommands;
98 procedure WriteStatus(const AServer: TIdHTTPWebBrokerBridge);
100 Writeln(sIndyVersion + AServer.SessionList.Version);
101 Writeln(sActive + AServer.Active.ToString(TUseBoolStrs.True));
102 Writeln(sPort + AServer.DefaultPort.ToString);
103 Writeln(sSessionID + AServer.SessionIDCookieName);
107 procedure RunServer(APort: Integer);
109 LServer: TIdHTTPWebBrokerBridge;
113 LServer := TIdHTTPWebBrokerBridge.Create(nil);
115 LServer.DefaultPort := APort;
119 LResponse := LowerCase(LResponse);
120 if LResponse.StartsWith(cCommandSetPort) then
121 SetPort(LServer, LResponse)
122 else if sametext(LResponse, cCommandStart) then
124 else if sametext(LResponse, cCommandStatus) then
126 else if sametext(LResponse, cCommandStop) then
128 else if sametext(LResponse, cCommandHelp) then
130 else if sametext(LResponse, cCommandExit) then
131 if LServer.Active then
140 Writeln(sInvalidCommand);
151 if WebRequestHandler <> nil then
152 WebRequestHandler.WebModuleClass := WebModuleClass;
156 Writeln(E.ClassName, ': ', E.Message);