AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TCPIP Verbindung Konfigurieren von Netzwerkadaptern
Thema durchsuchen
Ansicht
Themen-Optionen

TCPIP Verbindung Konfigurieren von Netzwerkadaptern

Ein Thema von CppN · begonnen am 5. Aug 2019
Antwort Antwort
CppN

Registriert seit: 5. Aug 2019
1 Beiträge
 
#1

TCPIP Verbindung Konfigurieren von Netzwerkadaptern

  Alt 5. Aug 2019, 13:30
Hallo liebe Forengemeinde,
ich habe eine Frage zu einer TCPIP Verbindung und dem TClientSocket Element. Ich nutze den C++ Builder 10 Seattle.

Bei meinem Projekt wird aus der Desktop Anwendung mit einer externen Steuerung über TCPIP kommuniziert. Die Steuerung ist bereits fertig und als TCPIP Server ausgelegt. An ihr muss mindestens einmal beim Erststart von Desktop Anwendung und Steuerung beim Kunden die IP-Adresse entsprechend dem Adressraum des Kundenrechners eingestellt werden. Ich spreche von den ersten 3 Bestandteilen der IP4 Adresse.
Das ganze ist natürlich nur nötig, wenn im Netzwerk kein DHCP Server vorhanden ist oder die Steuerung zum Beispiel direkt an den Ethernetport des Rechners angesteckt wird.

In meiner Software kann ich über GetAdaptersInfo die IP-Adressen und Adressräume der vorhandenen Adapter auslesen. Allerdings habe ich an meinem Standardrechner zum Beispiel einen LAN-Adapter, einen WLAN Adapter und noch weitere virtuelle Adapter, die teilweise alle andere IP-Adressräume besitzen. Somit bin ich davon ausgegangen dass auch der Kunde mehrere Adapter besitzen kann und dies entsprechend beachtet werden muss.

Da ich über Code nicht feststellen konnte welches der primäre Adapter ist oder an welchem Adapter meine Steuerung hängt, dachte ich dass der Kunde aus einer Liste den zu verwendenden Adapter auswählen kann. Es wäre ja theoretisch möglich, dass der Rechner an zwei Netzwerken hängt, das eine für Intra-/Internet und das andere nur für die Steuerung. Dann muss natürlich festgelegt werden welcher Netzwerkadapter verwendet werden soll.

Nach mehreren Tests habe ich dann festgestellt, dass beim Start der Verbindung und ersten Senden von Nachrichten immer der LAN-Adapter genutzt wird. Ich suche nun eine Möglichkeit beim TCLientSocket den Ausgangspunkt am Anwendungsrechner auf den vom Bediener ausgewählten Netzwerkadapter einzustellen. TClientSocket bietet hierfür scheinbar keine Möglichkeit. Das Objekt TClientSocket besitzt aber auch einen Socket der Klasse TClientWinSocket und diese wiederum erbt von TCustomWinSocket. TCustomWinSocket besitzt die Eigenschaften LocalAddress welche für mein Anliegen zu beschreiben wäre. Leider ist diese Eigenschaft nur lesend aufrufbar und ist auch nur mit der IP des LAN-Adapters belegt nachdem TClientSocket.Open() aufgerufen wurde.

Meine Fragen sind daher wie folgt:
1. Wie kann ich festlegen welchen Netzwerkadapter der TClientSocket nutzen soll?
2. Nach welcher Regel wird der verwendete Adapter standardmäßig ausgewählt? Bei mir ist es meist der LAN-Adapter, manchmal aber auch der WLAN-Adapter.
3. Ist der TClientSocket hier die richtige Komponenten und noch Stand der Dinge? Ich habe mich auch etwas in die Indy Dokumentation eingelesen und festgestellt, dass es hier die Eigenschaft BoundIP gibt, die genau das geforderte erledigt. Ich wollte aber eher die vorhandenen Komponenten vom C++ Builder nutzen statt externer. Auch funktioniert meine Anwendung bereits ohne Probleme wenn ich entsprechend alle IP-Adressen händisch einstelle.

Ich bedanke mich schon mal vorab für eure Rückmeldung.

Grüße
CppN
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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