![]() |
Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Hi,
Ich möchte in einem lokalen Netz per Ping - bevor ich weitere Kommunikationsversuche mit unter Umständen länglichen Timeouts - feststellen, ob ein Server prinzipiell da ist. Das gelingt unter Windows, aber unter iOS im Simulator führt das zum folgenden Fehler. Zitat:
Zitat:
Delphi-Quellcode:
Unter iOS kommt weiterhin obiger Fehler.
procedure TForm11.Button1Click(Sender: TObject);
begin IdIcmpClient1.Ping; end; procedure TForm11.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); begin label1.Text := AReplyStatus.Msg; end; Können die Indys unter iOS Pingen? Oder ist Pingen unter iOS verboten? Oder kann es nur der Simulator nicht? Sherlock |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Was genau willst Du machen, nachdem Du einen Ping erhalten hast ? Willst Du Dich dann mit dem Server verbinden ? Wenn ja, warum nutzt Du dann nicht UDP ?
|
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Ja, ich will mich mit einem SOAP-Server (sprich Apache-Server) verbinden. Für eine Prüfung per UDP müsste ich ja auf dem Server noch einen Dienst haben, der auf ein definiertes UDP Paket antwortet, oder nicht?
Sherlock |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Ja, Du müsstest auf dem Server den UPDServer haben und auf dem Gerät den UDPClient. Der Client schickt eine bestimmte Nachricht ins Netz. Der Server antwortet auf die Nachricht und gibt dann die entsprechende IP-Adresse zurück. Somit hättest Du zwei Fliegen mit einer Klappe geschlagen. Du weißt, dass Dein Server da ist und welche IP-Adresse er hat.
|
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
In der Tat war das ohnehin ein Punkt, den ich noch erledigen wollte, also daß die Clients den Server ohne Konfiguration identifizieren können. Hmm, es bleiben dennoch die offenen Fragen:
Zitat:
|
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Zitat:
Wenn dies über verschiedene Netze geschehen soll - müssten die Router Broadcast Nachrichten weiterleiten. Siehe auch: ![]() Grüße Klaus |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
![]() Zitat:
|
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Ah, Fudge... das hatte ich befürchtet. Ich habe ja schon für Win7 einen Sonderweg eingebaut (weil da auch Ping nur mit Adminrechten geht). Muss ich halt etwas finden, was unter iOS funktioniert. Danke!
Sherlock |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Zitat:
(Der Admin könnte den Server auch so konfiguriert haben dass er nicht auf Ping reagiert, daher ist es für den Test am aussagekräftigsten einen Verbindungsversuch mit dem konkreten Protokoll zu machen - z.B. ein HEAD auf die SOAP Endpoint-URL) |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Ja, das verkleinern des Timeouts...das ist so eine Sache. Initial mag das Sinn ergeben. Nur ist mein Server so aufgebaut, das er regelmäßig neu startet, und ich da noch ein klitzgkleines Problem mit dem Aufbau der ersten Verbindung nach dem Neustart habe. Diese dauert nämlich extrem viel länger als sonst. Das ist aber evtl. in den Griff zu kriegen.
Andererseits ist nichts schneller als ein Ping. Und so habe ich vor jedem Zugriff bisher ein Ping, das prüfen soll, ob der Server prinzipiell noch erreichbar ist. Das kann nämlich aufgrund der Natur der Server (stehen frei im Raum herum und sind durch jedermann von LAN oder Strom versehentlich bis absichtlich trennbar) jederzeit geschehen. UDP als Alternative ist gerade im mobile Bereich so eine Sache. Viele Switche filtern UDP in andere Subnetze raus, und ein mobile Device könnte im WLAN einem anderen Subnetz zugeordnet sein. Mir bleibt eigentlich nichts übrig als zu versuchen zB das hier ![]() Ediths weitere Recherchen ergaben eine vermutlich bessere Lösung: ![]() Edith gibt mir ne Ohrfeige und sagt: Dafür gibts das Wildcard-Profile, Du Honk! Sherlock |
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Zitat:
Zitat:
|
AW: Indy IdICMPClient.Ping führt auf Simulator zum Fehler
Ich befürchte, ich kann mich nicht darauf verlassen, daß alle Switche oder WLAN-APs alle Protokoll Goodies unterstützen. Darum muss ich auf das Pingen bzw. einem weitestgehendem Äquivalent "bestehen". Die Lösung von David Nottage, auf die SCNetworkReachability zuzugreifen erscheint dabei am elegantesten. Jedoch scheitert das Bereitstellen eines iOS-Testprojekts kläglich. (Strenggenommen ist das jetzt ein Crosspost, weil ich das Problem auch dort als Kommentar geschildert habe, aber ein echtes Forum ist das ja nicht)
Ich habe lediglich kleinste Änderungen am Projekt vorgenommen: eine Änderung des Projektnamens und NSString Typecasts durch StrToNSStr ersetzt. Wenn ich kompiliere erhalte ich den in den Kommentaren erwähnten Hinweis (ld: warning: unknown dwarf DW_FORM_strp (offset=0xFFFFCAC6) is too big in libReachability.a(Reachability.o)). Wenn ich aber auf dem Device ausführen möchte, erhalte ich immer den Fehler [Error Fehler] Required local file "iOSDevice32\Debug\Pingtest" not found. Deployment failed. In der Ausgabe sehe ich dann folgendes:
Code:
Es werden also die Bildchen kopiert, sofern sie nicht bereits vorhanden sind, aber die dysm wird nicht erzeugt, und entsprechend nicht gefunden. Einen Hinweis, warum das nicht klappt, kann ich nicht finden....Hilfe?
Bereitstellungsinformationen:
Bereitstellungsprofil "Wildcard (Viel Hexerei)" mit Zertifikat "iPhone Developer: Sherlock (XYZ)" wird verwendet Build started 04.09.2017 14:27:12. __________________________________________________ Project "F:\NetworkStateDemo\Pingtest.dproj" (Deploy target(s)): Target _CleanRemoteDir: Cleaning Remote Directory: Pingtest.app c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --Clean="Pingtest.app,F:\NetworkStateDemo\Pingtest._@emb_.tmp" -u8 --Clean="Pingtest.app.dSYM,F:\NetworkStateDemo\Pingtest._@emb_.tmp" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) gelöscht... Insgesamt gelöschte Datei(en): 0 Datei(en) 0 Verz. Die Datei F:\NetworkStateDemo\Pingtest._@emb_.tmp wird gelöscht. Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png,Pingtest.app\,0,Default-667h@2x.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png,Pingtest.app\,0,FM_ApplicationIcon_87x87.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png,Pingtest.app\,0,FM_SpotlightSearchIcon_40x40.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png,Pingtest.app\,0,FM_ApplicationIcon_152x152.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\CodeGear.Deployment.targets : warning : Local file "iOSDevice32\Debug\Pingtest.dSYM" not found. Skipping deployment. Done building target "_DeployFiles" in project "Pingtest.dproj". Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png,Pingtest.app\,0,Default-Landscape-736h@3x.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png,Pingtest.app\,0,Default-736h@3x.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\paclient.exe -u8 --put="c:\program files (x86)\embarcadero\studio\19.0\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png,Pingtest.app\,0,Default-Portrait@2x~ipad.png" myMac Platform Assistant Client Version 10.1.1.33 Copyright (c) 2010-2017 Embarcadero Technologies, Inc. Verbindung zu 192.168.110.61 auf Port 64211 wird hergestellt... Datei(en) wird (werden) kopiert... Insgesamt kopierte Datei(en): 0 Datei(en) 0 Byte Target _DeployFiles: c:\program files (x86)\embarcadero\studio\19.0\bin\CodeGear.Deployment.targets(492,5): error : Required local file "iOSDevice32\Debug\Pingtest" not found. Deployment failed. Done building target "_DeployFiles" in project "Pingtest.dproj" -- FAILED. Done building project "Pingtest.dproj" -- FAILED. Build FAILED. c:\program files (x86)\embarcadero\studio\19.0\bin\CodeGear.Deployment.targets : warning : Local file "iOSDevice32\Debug\Pingtest.dSYM" not found. Skipping deployment. c:\program files (x86)\embarcadero\studio\19.0\bin\CodeGear.Deployment.targets(492,5): error : Required local file "iOSDevice32\Debug\Pingtest" not found. Deployment failed. 1 Warning(s) 1 Error(s) Time Elapsed 00:00:00.68 Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 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-2025 by Thomas Breitkreuz