|
[WM12] Gérer perte de connexion wifi |
Iniciado por Julie, mai., 31 2011 11:32 AM - 2 respostas |
| |
| | | |
|
| |
Publicado em maio, 31 2011 - 11:32 AM |
Bonjour,
Je travaille actuellement sur un serveur socket delphi et un client windev mobile 12 qui communiquent par wifi... Mais j'aimerai savoir gérer le fait qu'il y ait une perte de connexion wifi ou un passage du client dans une zone d'ombre... Comment puis-je faire ? Sachant que la fonction Ping n'existe pas en WinDev Mobile ...
J'ai tenté ceci :
Procedure Pinging(nIcmp est un entier, sAdrip est une chaîne, ntimeout est un entier)
ICMP_ECHO est composé de ipadr est un entier status est un entier RoundTripTime est un entier DataSize est un entier sur 2 octets Reserved est un entier sur 2 octets Data est un entier ttl est une chaîne sur 2 tos est une chaîne sur 2 flag est une chaîne sur 16 opsize est une chaîne sur 2 opdata est un entier datat est une chaîne sur 250 FIN
ipad est un entier = AppelDLL32("ws2_32","inet_addr",sAdrip) cretour est un entier
SI AppelDLL32("icmp.dll","IcmpSendEcho",nIcmp, ipad ,"Test Ping Echo", 32 , Null, &ICMP_ECHO , Dimension(ICMP_ECHO)+8, ntimeout )<>0 ALORS cretour = ICMP_ECHO.RoundTripTime SINON cretour = -1 FIN
RENVOYER cretour
Que je teste à chaque socketEcrit :
Procedure EcritSocket(nomSocket, messageAEnvoyer)
icmp est un entier = AppelDLL32("icmp.dll","IcmpCreateFile") adresseip est une chaîne = INILit("Connexion", "AdresseIP", "", cheminFichierIni)
nDelaims est un entier = Pinging (icmp,adresseip,1000)
sMessage est une chaîne = Taille(SansEspace(messageAEnvoyer)+"#")+RC+SansEspace(messageAEnvoyer)+"#"
SI nDelaims<>-1 ALORS Info("Ordinateur trouvé ! Ping de "+nDelaims+" ms") SI EnModeTest() ALORS
SI SocketEcrit(nomSocket, sMessage) ALORS Multitâche(100) SINON gsMsgErreurPopUp = "Erreur écriture socket" Ouvre(Popup_Erreur) RENVOYER 0 FIN SINON
SISocketEcrit(csNomSocket, UnicodeVersAnsi(sMessage)) ALORS Multitâche(100) SINON gsMsgErreurPopUp = "Erreur écriture socket" Ouvre(Popup_Erreur) RENVOYER 0 FIN FIN SINON gsMsgErreurPopUp = "Problème connexion internet" Ouvre(Popup_Erreur) FIN
ça fonctionne en mode test mais pas en mode pocketPc où j'ai Erreur au chargement de la DLL 'icmp.dll' ... j'ai pourtant récupérer icmp.dll dans mon pc pour le transférer dans le PSION...
Merci d'avance, |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 22 2011 - 4:58 PM |
Pour remplacer le ping, je fais un houvreconnexion() sur une connexion HFCS que j'ai créé uniquement ce test |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 22 2011 - 5:15 PM |
Oui ben du coup j'utilise le SocketConnecte moi merci pour l'info |
| |
| |
| | | |
|
| | | | |
| | |
|