Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdHttpServer und mehrere Bindings (https://www.delphipraxis.net/65100-tidhttpserver-und-mehrere-bindings.html)

GuenterS 12. Mär 2006 13:11


TIdHttpServer und mehrere Bindings
 
Hallo,

ich bin dabei ein Programm zu schreiben, welches auf mehreren IP/Port auf Http Anfragen lauschen soll.

Dazu würde ich gerne die Indy Komponente TIdHttpServer verwenden. Denke dass mir diese schon eine Menge Arbeit abnimmt.

Solange ich nur eine Adresse mit einem Port zuweise klappt es, aber sobald es mehr werden bekomm ich eine Fehlermeldung. ("SocketFehler 10049. Die angeforderte Adresse kann nicht zugewiesen werden.")

Mein Code schaut in etwa so aus:
Delphi-Quellcode:
  if (not Server.Active) then
  begin
    with qryFirma do
    begin
      First;
      while (not Eof) do
      begin
        lSocketHandle := Server.Bindings.Add;
        lSocketHandle.IP := FieldByName('IP').AsString;
        lSocketHandle.Port := FieldByName('PORT').AsInteger;
        Next;
      end;
    end;
    Server.Active := true;
  end
  else
    Server.Active := false;
Der Fehler kommt genau dann, wenn ich den Server auf Active = true setze.

Als IP und Ports würde folgendes eingetragen
IP: '127.0.0.1' Port: 80
IP: '192.168.1.110' Port: 80

marabu 12. Mär 2006 13:50

Re: TIdHttpServer und mehrere Bindings
 
Hallo Günter,

hast du vorher geprüft, dass kein anderer Prozess die entsprechenden sockets gebunden hat? Eventuell blockiert ein lokaler HTTP Server den Port 80 auf diesen oder sogar allen Adressen.

Grüße vom marabu

GuenterS 12. Mär 2006 14:13

Re: TIdHttpServer und mehrere Bindings
 
Hallo Marabu!

Das habe ich zwar nicht geprüft, kann es aber ausschließen, da es funktioniert wenn ich jeweils eine der zwei IPs verwende und der Fehler erst dann kommt wenn ich 2 oder mehr eingeben möchte.

marabu 12. Mär 2006 14:47

Re: TIdHttpServer und mehrere Bindings
 
Ich kann deinen Fehler nur reproduzieren, wenn ich meinen HTTP Server hochfahre. Der lauscht auf 0.0.0.0:80 - fahre ich ihn runter, dann kann ich problemlos mehrere Bindings festlegen. (Indy9)

marabu

GuenterS 12. Mär 2006 14:58

Re: TIdHttpServer und mehrere Bindings
 
Du hast recht.

Ich war mir nur so sicher, dass 192.168.1.110 meine eigene IP-Adresse ist, deswegen dachte ich, dass ich einen zweiten Prozess ausschließen könnte. War nur nicht meine IP.

Funktioniert einwandfrei.


Dankeschön :)

hatro70 12. Mär 2006 17:44

Re: TIdHttpServer und mehrere Bindings
 
Zitat:

Zitat von GuenterS
Du hast recht.

Ich war mir nur so sicher, dass 192.168.1.110 meine eigene IP-Adresse ist, deswegen dachte ich, dass ich einen zweiten Prozess ausschließen könnte. War nur nicht meine IP.

Funktioniert einwandfrei.


Dankeschön :)

warum bindest du ihn nicht auf 0.0.0.0:80 ? wie marabu meinte ?

das schliesst alle ips ein also deine interne 127.0.0.1

GuenterS 12. Mär 2006 18:24

Re: TIdHttpServer und mehrere Bindings
 
Zitat:

Zitat von hatro70
Zitat:

Zitat von GuenterS
Du hast recht.

Ich war mir nur so sicher, dass 192.168.1.110 meine eigene IP-Adresse ist, deswegen dachte ich, dass ich einen zweiten Prozess ausschließen könnte. War nur nicht meine IP.

Funktioniert einwandfrei.


Dankeschön :)

warum bindest du ihn nicht auf 0.0.0.0:80 ? wie marabu meinte ?

das schliesst alle ips ein also deine interne 127.0.0.1

weil auf dem System wo das Programm mal laufen soll durchaus auch andere HTTP Server laufen können müssen und zweitens soll er nur von bestimmten konfigurierbaren Adressen erreichbar sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz