Servus,
ich arbeite zurzeit an einem Webserver (mit den
Indy Komponenten). Dieser hat den Port 80. Falls dieser Port schon belegt ist, soll der Port um eins erhört werden. Dann wird wieder überprüft, ob er belegt ist, usw.
Jedoch wird bei meinem Code immer eine
Exception ausgelöst, selbst wenn die weiteren Ports frei sind. Nur wenn der
erste Port (in dem Fall der Port 80) frei ist, läuft der Webserver.
Hier der Code:
Delphi-Quellcode:
function StartWebserver : Boolean;
begin
Result := false;
try
frmMain.Webserver.Active := true;
Result := true;
except
on EIdCouldNotBindSocket do
begin
// Ausfuehren, wenn Port belegt ist
frmMain.Webserver.Active := false;
Exit;
end;
end;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
...
Webserver.DefaultPort := 80;
while StartWebserver = false do
begin
Webserver.DefaultPort := Webserver.DefaultPort +1;
end;
...
end;
Könnt ihr helfen?