![]() |
App Tethering - DiscoverManagers(Target) - Multicast
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:
Also have ich diese Aufrufe versucht:
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. - 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:
Dieser Check verursacht das Problem - nur IPs die zwischen 224.0.0.0 und 239.0.0.0 sind werden akzeptiert!??
//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; Warum? Jemand eine Idee? |
AW: App Tethering - DiscoverManagers(Target) - Multicast
Hi !
Ich habe gerade das gleiche Problem. Hast Du inzwischen irgendwelche Erkenntnisse dazu erlangt? Gruß Guido R. |
AW: App Tethering - DiscoverManagers(Target) - Multicast
Ich denke es wird eine externe Ip und keine Interne benötigt, wobei die 192. die interne wäre. Soweit meine Vermutung.^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz