Einzelnen Beitrag anzeigen

cYaONE

Registriert seit: 18. Mai 2003
Ort: Sand am Main
192 Beiträge
 
Delphi 7 Personal
 
#1

Prüfen, ob Port bereits belegt ist

  Alt 5. Apr 2004, 18:35
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?
  Mit Zitat antworten Zitat