DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Sockets
  • Optimisation des connexions dans le cas d'une adresse IP
  • Délai d'attente
  • Résolution de nom
  • Permissions requises
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Permet d'établir une connexion sécurisée avec un serveur SSL.
Exemple
SI SocketConnecteSSL("Serveur", 8000, "150.134.20") = Faux ALORS
Erreur("erreur de connexion " + ErreurInfo(errMessage))
FIN
Syntaxe
<Résultat> = SocketConnecteSSL(<Nom du socket> , <Numéro de port> , <Adresse> [, <Option SSL> [, <Attente maximale> [, <Certificat client>]]])
<Résultat> : Booléen
  • Vrai si la connexion a été réalisée,
  • Faux dans le cas contraire. En cas d'erreur, il est possible de connaître le détail de l'erreur grâce à la fonction ErreurInfo.
<Nom du socket> : Chaîne de caractères
Nom à donner à la connexion ouverte sur le socket du serveur. Ce nom sera utilisé dans toutes les fonctions socket.
WINDEV Attention : le nom du socket est "case-sensitive".
<Numéro de port> : Entier
Numéro de port du socket. Si vous utilisez un socket associé à un protocole prédéfini, utilisez le numéro de port associé au protocole.
Si le socket a été créé par une application WINDEV, ce numéro doit être compris entre 5 000 et 65 000. Dans ce cas, le numéro doit être identique au numéro de port indiqué dans la fonction SocketCréeSSL.
<Adresse> : Chaîne de caractères
Adresse du poste serveur. Si ce paramètre n'est pas spécifié, le serveur est recherché sur le poste en cours. Cette adresse peut être donnée sous la forme :
  • adresse IP au format XXX.XXX.XXX.XXX ( par exemple 125.5.110.100).
  • URL contenant le nom du serveur (par exemple www.pcsoft.fr). Cette syntaxe est conseillée.
WINDEVWEBDEV - Code Serveur L'adresse peut également correspondre à l'adresse IP obtenue par la fonction NetAdresseIP.
AndroidWidget Android L'adresse doit être l'adresse IP du serveur (et non le nom du serveur).
<Option SSL> : Combinaison de constantes de type entier optionnelle
Permet de choisir le protocole utilisé et le mode d'identification :
ProtocoleSSL2Utilisation du protocole SSL2
LinuxiPhone/iPad Ce protocole n'est pas supporté.
ProtocoleSSL3Utilisation du protocole SSL3
LinuxiPhone/iPad Ce protocole n'est pas supporté.
ProtocoleTLS1Utilisation du protocole TLS1
ProtocoleTLS1_1Utilisation du protocole TLS 1.1
ProtocoleTLS1_2Utilisation du protocole TLS 1.2
ProtocoleTLS1_3Utilisation du protocole TLS 1.3

Par défaut, la combinaison utilisée est : ProtocoleTLS1 + ProtocoleTLS1_1 + ProtocoleTLS1_2.
<Attente maximale> : Entier optionnel ou Durée optionnelle
Attente maximale (en millisecondes) de réalisation de la connexion. Ce délai sert uniquement dans le cas où le serveur refuse la connexion (fonction SocketRefuse). La connexion ne sera alors pas bloquante.
Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Par défaut, cette attente est égale à 10 millisecondes.
<Certificat client> : Variable de type Certificat
Nom de la variable de type Certificat permettant au serveur d'authentifier le client qui se connecte et de vérifier que ce client est bien autorisé à accéder au serveur. Ce certificat doit être reconnu sur le poste serveur.
LinuxAndroidWidget AndroidiPhone/iPad Ce paramètre n'est pas disponible.
Remarques

Optimisation des connexions dans le cas d'une adresse IP

Lorsqu'une adresse IP est passée à la fonction SocketConnecteSSL, il est possible d'optimiser la connexion en utilisant le code suivant :
Socket.Option = SocketOptimiseConnexionIP
Cette option n'est pas activée par défaut car la connexion peut échouer dans certaines configurations. Cependant, elle peut être intéressante dans certaines applications où les performances sont critiques.
Remarque : Pour retrouver le fonctionnement par défaut, il suffit d'utiliser la constante SocketOptionDéfaut :
Socket.Option = SocketOptionDéfaut

Délai d'attente

Le délai indiqué par le paramètre <Attente maximale> regroupe le délai de deux étapes :
  • le délai de résolution de l'adresse : ce délai est non paramétrable et peut être optimisé (voir ci-dessous).
  • le délai d'attente maximum d'acceptation de la connexion par le serveur. Plusieurs cas peuvent se présenter :
    • le serveur refuse la connexion.
    • le serveur accepte la connexion dans le délai imparti
    • le serveur n'est pas disponible.
    • l'adresse indiquée n'est pas valide.
Afin d'optimiser le délai de résolution de l'adresse (le temps de recherche de l'adresse), il est recommandé :
  • soit d'utiliser un DNS sur le réseau. Ainsi, la recherche de cette adresse sera faite auprès de ce serveur et non pour chaque poste (1 recherche au lieu de x recherches où x est le nombre de postes). Chaque poste doit être enregistré auprès de ce serveur.
  • soit dans le cas d'une adresse IP, d'utiliser la variable Socket.Option = SocketOptimiseConnexionIP.
AndroidWidget Android

Résolution de nom

L'émulateur Android n'utilise pas le système de résolution de nom de la machine sur laquelle il fonctionne. Ce détail est important si votre poste de développement est configuré pour ajouter automatiquement un suffixe de nom de domaine local aux noms de machine à résoudre. Dans l'émulateur Android, il sera nécessaire de passer des noms complets.
Par exemple : Si votre poste est configuré pour ajouter le suffixe "mondomaine.com" aux noms simples, le code suivant :
SocketConnecte("monserveur")
tentera de se connecter à monserveur.mondomaine.com s'il est exécuté directement sur le PC et simplement à "monserveur" dans l'émulateur Android.
Lors de l'exécution sur un appareil Android, la fonction SocketConnecteSSL attend une adresse IP :
SocketConnecte("125.5.110.100") // ou une chaine contenant l'adresse IP.
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne la modification des permissions requises par l'application.
Permission requise : INTERNET
Cette permission autorise l'application à ouvrir des sockets réseau.
Classification Métier / UI : Code métier
Composante : wd290com.dll
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale