AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke App Tethering - DiscoverManagers(Target) - Multicast
Thema durchsuchen
Ansicht
Themen-Optionen

App Tethering - DiscoverManagers(Target) - Multicast

Offene Frage von "MichaMD"
Ein Thema von weisswe · begonnen am 28. Dez 2017 · letzter Beitrag vom 23. Okt 2021
Antwort Antwort
weisswe
(Gast)

n/a Beiträge
 
#1

App Tethering - DiscoverManagers(Target) - Multicast

  Alt 28. Dez 2017, 10:08
Hello!

Ich gebe App Tethering eine neue Change und wollte eine kleine einfache Test-App erstellen.
Hat auch funktioniert - unter speziellen Voraussetzungen.
1. AllowedAdapters: Network_V4
2. DiscoverManagers funktioniert nur OHNE Target Wert

Und nun zu Punkt 2:
Hier steht in der Doku das man eine spezielle IP bzw. Maske hinterlegen kann.
In meinem Fall wäre der Server auf 192.168.1.54 (auch in der Doku ist eine solche IP angegeben - siehe nachfolgend).
Code:
Original Delphi Tokyo Doku:
http://docwiki.embarcadero.com/Libraries/Tokyo/de/System.Tether.NetworkAdapter.TTetheringNetworkAdapterCommon.DoDiscoverManagers
Standardmäßig führt der Manager die Suche im Subnetz des LAN (Local Area Network) durch, in dem sich das Gerät mit Ihrer Anwendung befindet.
Verwenden Sie den Parameter ATargetList, um eine Liste mit einer oder mehreren IP-Adressen oder Subnetzen anzugeben, in denen Sie Remote-Manager ermitteln möchten. Um ein Subnetz zu definieren, geben Sie eine IP-Adresse mit 0 als vierter Nummer an. "192.168.4.0" bezeichnet beispielsweise das Subnetz 192.168.4.x.
Hinweis: Sie können keine umfassenderen Subnetze angeben. "192.168.0.0" wird beispielsweise nicht unterstützt.
Also have ich diese Aufrufe versucht:
- DiscoverManagers('192.168.1.54'); -> kein Server gefunden!
- DiscoverManagers('192.168.1.0'); -> wieder kein Server gefunden!

Fehlermeldung beim Debuggen: Die übermittelte IP-Adresse ist keine gültige Multicast-Adresse!

Ok, aha - interessant.
Dann hab ich im Indy Code etwas gefunden:
Delphi-Quellcode:
//for IPv4 Multicast address chacking
const
  IPv4MCastLo = 224;
  IPv4MCastHi = 239;

function TIdStack.IsValidIPv4MulticastGroup(const Value: string): Boolean;
var
  LIP: string;
  LVal: Integer;
begin
  Result := False;
  if IsIP(Value) then
  begin
    LIP := Value;
    LVal := IndyStrToInt(Fetch(LIP, '.')); {Do not Localize}
    Result := (LVal >= IPv4MCastLo) and (LVal <= IPv4MCastHi);
  end;
end;
Dieser Check verursacht das Problem - nur IPs die zwischen 224.0.0.0 und 239.0.0.0 sind werden akzeptiert!??
Warum?

Jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
137 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: App Tethering - DiscoverManagers(Target) - Multicast

  Alt 26. Feb 2018, 10:44
Hi !

Ich habe gerade das gleiche Problem. Hast Du inzwischen irgendwelche Erkenntnisse dazu erlangt?

Gruß
Guido R.
  Mit Zitat antworten Zitat
MichaMD

Registriert seit: 20. Mär 2021
Ort: Magdeburg
28 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: App Tethering - DiscoverManagers(Target) - Multicast

  Alt 23. Okt 2021, 20:38
Ich denke es wird eine externe Ip und keine Interne benötigt, wobei die 192. die interne wäre. Soweit meine Vermutung.^^
  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 15:05 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