Einzelnen Beitrag anzeigen

markusagb

Registriert seit: 11. Jun 2018
46 Beiträge
 
#1

TidudpServer "Socket konnte nicht gebunden werden"

  Alt 12. Dez 2021, 14:08
Hallo zusammen,

erst mal einen schönen dritten Advent an Euch.

Ich habe lange rumgesucht, leider kein brauchbares Ergebnis bekommen. Ich empfange mit TidUDPServer (Indy) Daten von einem anderen Programm
(Ich bekomme einen String welcher je nach Inhalt ausgewertet wird).

Solange ich in der "localhost" Umgebung bin, also das andere Programm auf dem gleichen Rechner läuft, funktioniert das super über die
localhost-IP 127.0.0.1 (+egal welcher Port ab 2000). Ich empfange die Daten und alles ist gut.

Wenn aber das andere Programm von dem ich die Daten bekomme von einem anderen Rechner in meinem Home-Netzwerk (Testumgebung) kommt,
und ich eine IP wie 192.168.1.20 (oder egal welche) inkl. egal welcher Port verwende, dann erhalte ich die Fehlermeldung beim Start meiner Anwendung:

"Socket konnte nicht gebunden werden. Adresse und Port werden bereits verwendet"

Aber: wenn ich die IP auf 0.0.0.0 und (egal welcher Port ab 2000) in der Komponente setze, dann bekomme ich vom externen
Rechner meine Daten (da mir der TidUDPServer ALLE IPs mit dem Port abhört. Auch kann ich neben dem localhost meine eigene IP
binden (192.168.1.20), da bekomme ich auch keinen Fehler.

Nun meine Frage: warum kann ich keine IP aus meinem Netzwerk einsetzen?

Facts:
Alle verwendeten Ports auf meinem PC sind frei
Kein weiteres Programm bzw. Dienst blockiert meine Ports
Es betrifft ALLE IP Adressen von 192.168.1.0 bis 192.168.1.255
PC Firewall hat keine Einschränkungen, auch ausgeschaltet gleicher Fehler
Beim Test im Netzwerk unserer Firma = gleiches Problem
Router = Netgear
Modem=FritzBox

Code:
procedure TForm2.UdpConfig;
var
Binding: TIdSocketHandle;
begin
Try
Form1.IdUDPServer1.Bindings.Clear;
Binding:=Form1.IdUDPServer1.Bindings.Add;
Binding.IP:=192.168.1.100;
Binding.Port:=21100;
Form1.IdUDPServer1.DefaultPort:=21100;
Form1.IdUDPServer1.Active:=True;
except
On E:Exception do messagedlg(E.Message,mterror, [mbOK], 0, mbOK);
end;
end;

IP-Version = Id_IPv4
RADStudio 10.1 Delphi
Indy 10

Auch wenn ich die TidUDPServer Komponente direkt konfiguriere und das Binding in der Komponente vorgebe, passiert das Gleiche.
Ich vermute den Fehler bei mir - eventuell habe ich etwas übersehen... am Netzwerk oder den Ports liegt es zu 99% nicht.

Ich komm da jetzt leider nicht mehr weiter und hoffe auf Eure Hilfe.

Danke schon mal!!!

Markus
Miniaturansicht angehängter Grafiken
fehlermeldung.png  

Geändert von markusagb (12. Dez 2021 um 17:55 Uhr)
  Mit Zitat antworten Zitat