PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Optimisation des connexions dans le cas d'une adresse IP
  • Délai d'attente
  • Connexion à un port infrarouge
  • Résolution de nom
  • Permissions requises
  • Fonctionnalité d'application requise
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Connecte un poste client à un socket donné.
Remarques :
  • Sockets de type UDP : Le protocole UDP n'est pas un protocole dit "connecté" donc la fonction SocketConnecte n'est pas utilisable avec le protocole UDP. Pour envoyer ou recevoir des données avec le protocole UDP, il est nécessaire de créer un socket UDP (fonction SocketCréeUDP puis envoyer / recevoir des données avec les syntaxes "spéciales UDP" des fonctions SocketEcrit et SocketLit.
  • Sockets SSL : Pour envoyer ou recevoir des données avec le protocole SSL, il est nécessaire de créer un socket SSL (fonction SocketCréeSSL) et de se connecter à ce socket par la fonction SocketConnecteSSL.
  • Communication avec des automates ou des applications non WINDEV : Pour simplifier les échanges des données par socket, un mode de transmission est initialisé par défaut. Dans le cas d'une communication avec un module externe (application non WINDEV, automate, ...), ce mode de transmission peut empêcher le bon fonctionnement des communications. La fonction SocketChangeModeTransmission permet de changer ce mode de transmission (la constante SocketSansMarqueurFin permet de ne pas modifier les trames lues et écrites).
  • Versions 22 et supérieures
    WEBDEV - Code Navigateur Websockets : Les WebSockets permettent de communiquer depuis une application Web (site Intranet ou Internet exécuté dans un navigateur) vers un serveur Web en utilisant des sockets. La fonction SocketConnecte permet de se connecter au serveur de WebSockets. Pour plus de détails, consultez Gestion des WebSockets.
    Nouveauté 22
    WEBDEV - Code Navigateur Websockets : Les WebSockets permettent de communiquer depuis une application Web (site Intranet ou Internet exécuté dans un navigateur) vers un serveur Web en utilisant des sockets. La fonction SocketConnecte permet de se connecter au serveur de WebSockets. Pour plus de détails, consultez Gestion des WebSockets.
    WEBDEV - Code Navigateur Websockets : Les WebSockets permettent de communiquer depuis une application Web (site Intranet ou Internet exécuté dans un navigateur) vers un serveur Web en utilisant des sockets. La fonction SocketConnecte permet de se connecter au serveur de WebSockets. Pour plus de détails, consultez Gestion des WebSockets.
Rappel : Un socket est une ressource de communication utilisée par les applications pour communiquer d'une machine à une autre sans se soucier du type de réseau.
Versions 15 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Universal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Versions 18 et supérieures
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Nouveauté 18
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Versions 22 et supérieures
WEBDEV - Code Navigateur Cette fonction est désormais disponible en code navigateur.
Nouveauté 22
WEBDEV - Code Navigateur Cette fonction est désormais disponible en code navigateur.
WEBDEV - Code Navigateur Cette fonction est désormais disponible en code navigateur.
Versions 23 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 23
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Exemple
WINDEVWEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWindows MobileUniversal Windows 10 AppJavaPHP
SI SocketConnecte("Serveur", 8000) = Faux ALORS
        Erreur("erreur de connexion " + ErreurInfo(errMessage))
FIN
Versions 22 et supérieures
WEBDEV - Code Navigateur
SocketConnecte("client", "ws://<AdresseIPServeur>:5001", ProcRetour)
PROCEDURE ProcRetour(nEvenement, sMessage)
gsRes est une chaîne = ""

SELON nEvenement
CAS SocketOuverture :
SocketEcrit("client", "Envoi message depuis le navigateur.")
RETOUR
CAS SocketMessage : gsRes += [RC] + "Réception du message : " + sMessage
CAS SocketFermeture : gsRes += [RC] + "Fermeture de la socket"
CAS SocketErreur :
gsRes += [RC] + "Erreur de la socket : " + sMessage
RETOUR
AUTRE CAS
FIN
Info(gsRes)
Nouveauté 22
WEBDEV - Code Navigateur
SocketConnecte("client", "ws://<AdresseIPServeur>:5001", ProcRetour)
PROCEDURE ProcRetour(nEvenement, sMessage)
gsRes est une chaîne = ""

SELON nEvenement
CAS SocketOuverture :
SocketEcrit("client", "Envoi message depuis le navigateur.")
RETOUR
CAS SocketMessage : gsRes += [RC] + "Réception du message : " + sMessage
CAS SocketFermeture : gsRes += [RC] + "Fermeture de la socket"
CAS SocketErreur :
gsRes += [RC] + "Erreur de la socket : " + sMessage
RETOUR
AUTRE CAS
FIN
Info(gsRes)
WEBDEV - Code Navigateur
SocketConnecte("client", "ws://<AdresseIPServeur>:5001", ProcRetour)
PROCEDURE ProcRetour(nEvenement, sMessage)
gsRes est une chaîne = ""

SELON nEvenement
CAS SocketOuverture :
SocketEcrit("client", "Envoi message depuis le navigateur.")
RETOUR
CAS SocketMessage : gsRes += [RC] + "Réception du message : " + sMessage
CAS SocketFermeture : gsRes += [RC] + "Fermeture de la socket"
CAS SocketErreur :
gsRes += [RC] + "Erreur de la socket : " + sMessage
RETOUR
AUTRE CAS
FIN
Info(gsRes)
Syntaxe
WINDEVWEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWindows MobileUniversal Windows 10 AppJavaPHP

Se connecter à une socket Masquer les détails

<Résultat> = SocketConnecte(<Nom du socket> , <Numéro de port> [, <Adresse> [, <Délai maximal>]])
<Résultat> : Booléen
  • Vrai si la fonction a réussi,
  • 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 (avec guillemets)
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ée.
<Adresse> : Chaîne de caractères optionnelle (avec guillemets)
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.
<Délai maximal> : Entier optionnel ou Durée optionnelle
Délai maximal (en millisecondes) accordé pour la 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,
  • Versions 23 et supérieures
    l'indication directe de la durée (par exemple 1 s ou 10 ms).
    Nouveauté 23
    l'indication directe de la durée (par exemple 1 s ou 10 ms).
    l'indication directe de la durée (par exemple 1 s ou 10 ms).
Par défaut, cette attente est égale à 5 000 millisecondes (5 secondes). Consultez les remarques pour plus de détails.
PHP Ce paramètre est ignoré.
Versions 22 et supérieures
WEBDEV - Code Navigateur

Se connecter à un WebSocket Masquer les détails

SocketConnecte(<Nom du socket> , <Adresse> , <Nom de la procédure Navigateur> [, <Protocole(s)>])
<Nom du socket> : Chaîne de caractères (avec guillemets)
Nom à donner au socket lors de la connexion au serveur. Ce nom sera utilisé dans toutes les fonctions socket. Attention : Le nom du socket est "case-sensitive".
<Adresse> : Chaîne de caractères (avec guillemets)
Adresse du serveur de WebSockets à utiliser pour la connexion. Cette adresse est de la forme ws[s]://serveur[:port][/répertoireX/.../]. Dans ce cas :
  • le préfixe ws indique que le serveur est un serveur de WebSockets. wss est utilisé dans le cas d'un serveur de WebSockets sécurisé.
  • serveur correspond à l'adresse du serveur sous la forme du nom du serveur, du nom du domaine ou de l'adresse IP du serveur.
  • port correspond au numéro de port de communication utilisé pour dialoguer avec le serveur. Ce numéro doit être identique au numéro de port indiqué dans la fonction SocketCrée si le serveur de WebSockets a été créé en WLangage avec WINDEV ou WEBDEV.
  • répertoireX correspond aux éventuels répertoires virtuels du serveur.
<Nom de la procédure Navigateur> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure WLangage écrite en code navigateur (également nommée "callback"). Cette procédure est appelée une fois que la connexion au serveur a été effectuée. Cette procédure permet d'envoyer un message au serveur à l'aide de la fonction SocketEcrit.
Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Evénement>, <Message>)

où :
  • <Evénement> correspond à une des constantes suivantes :
    SocketOuvertureLe socket est connecté au serveur. Il est possible d'envoyer des messages.
    SocketFermetureLe socket est fermé. Le paramètre <Message> est toujours vide.Le paramètre <Message> contient un code qui indique la raison de la fermeture.
    SocketErreurUne erreur s'est produite durant la communication avec le serveur. Le paramètre <Message> est toujours vide.
    SocketMessageLe socket a reçu un message. Le paramètre <Message> contient les données relatives au message.
  • <Message> correspond au message reçu en réponse du serveur en fonction de l'<Evénement>.
Remarque : Il n'est pas nécessaire de passer des paramètres à cette procédure. En effet, ces paramètres sont renseignés automatiquement.
<Protocole(s)> : Chaîne de caractères (avec guillemets) ou tableau de chaînes de caractères (optionnel)
Protocole(s) correspondant au format de la réponse du WebSocket. Par exemple : "JSON", "XML". Si ce paramètre n'est pas précisé ou correspond à une chaîne vide, aucun protocole n'est utilisé.
Nouveauté 22
WEBDEV - Code Navigateur

Se connecter à un WebSocket Masquer les détails

SocketConnecte(<Nom du socket> , <Adresse> , <Nom de la procédure Navigateur> [, <Protocole(s)>])
<Nom du socket> : Chaîne de caractères (avec guillemets)
Nom à donner au socket lors de la connexion au serveur. Ce nom sera utilisé dans toutes les fonctions socket. Attention : Le nom du socket est "case-sensitive".
<Adresse> : Chaîne de caractères (avec guillemets)
Adresse du serveur de WebSockets à utiliser pour la connexion. Cette adresse est de la forme ws[s]://serveur[:port][/répertoireX/.../]. Dans ce cas :
  • le préfixe ws indique que le serveur est un serveur de WebSockets. wss est utilisé dans le cas d'un serveur de WebSockets sécurisé.
  • serveur correspond à l'adresse du serveur sous la forme du nom du serveur, du nom du domaine ou de l'adresse IP du serveur.
  • port correspond au numéro de port de communication utilisé pour dialoguer avec le serveur. Ce numéro doit être identique au numéro de port indiqué dans la fonction SocketCrée si le serveur de WebSockets a été créé en WLangage avec WINDEV ou WEBDEV.
  • répertoireX correspond aux éventuels répertoires virtuels du serveur.
<Nom de la procédure Navigateur> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure WLangage écrite en code navigateur (également nommée "callback"). Cette procédure est appelée une fois que la connexion au serveur a été effectuée. Cette procédure permet d'envoyer un message au serveur à l'aide de la fonction SocketEcrit.
Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Evénement>, <Message>)

où :
  • <Evénement> correspond à une des constantes suivantes :
    SocketOuvertureLe socket est connecté au serveur. Il est possible d'envoyer des messages.
    SocketFermetureLe socket est fermé. Le paramètre <Message> est toujours vide.Le paramètre <Message> contient un code qui indique la raison de la fermeture.
    SocketErreurUne erreur s'est produite durant la communication avec le serveur. Le paramètre <Message> est toujours vide.
    SocketMessageLe socket a reçu un message. Le paramètre <Message> contient les données relatives au message.
  • <Message> correspond au message reçu en réponse du serveur en fonction de l'<Evénement>.
Remarque : Il n'est pas nécessaire de passer des paramètres à cette procédure. En effet, ces paramètres sont renseignés automatiquement.
<Protocole(s)> : Chaîne de caractères (avec guillemets) ou tableau de chaînes de caractères (optionnel)
Protocole(s) correspondant au format de la réponse du WebSocket. Par exemple : "JSON", "XML". Si ce paramètre n'est pas précisé ou correspond à une chaîne vide, aucun protocole n'est utilisé.
WEBDEV - Code Navigateur

Se connecter à un WebSocket Masquer les détails

SocketConnecte(<Nom du socket> , <Adresse> , <Nom de la procédure Navigateur> [, <Protocole(s)>])
<Nom du socket> : Chaîne de caractères (avec guillemets)
Nom à donner au socket lors de la connexion au serveur. Ce nom sera utilisé dans toutes les fonctions socket. Attention : Le nom du socket est "case-sensitive".
<Adresse> : Chaîne de caractères (avec guillemets)
Adresse du serveur de WebSockets à utiliser pour la connexion. Cette adresse est de la forme ws[s]://serveur[:port][/répertoireX/.../]. Dans ce cas :
  • le préfixe ws indique que le serveur est un serveur de WebSockets. wss est utilisé dans le cas d'un serveur de WebSockets sécurisé.
  • serveur correspond à l'adresse du serveur sous la forme du nom du serveur, du nom du domaine ou de l'adresse IP du serveur.
  • port correspond au numéro de port de communication utilisé pour dialoguer avec le serveur. Ce numéro doit être identique au numéro de port indiqué dans la fonction SocketCrée si le serveur de WebSockets a été créé en WLangage avec WINDEV ou WEBDEV.
  • répertoireX correspond aux éventuels répertoires virtuels du serveur.
<Nom de la procédure Navigateur> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure WLangage écrite en code navigateur (également nommée "callback"). Cette procédure est appelée une fois que la connexion au serveur a été effectuée. Cette procédure permet d'envoyer un message au serveur à l'aide de la fonction SocketEcrit.
Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Evénement>, <Message>)

où :
  • <Evénement> correspond à une des constantes suivantes :
    SocketOuvertureLe socket est connecté au serveur. Il est possible d'envoyer des messages.
    SocketFermetureLe socket est fermé. Le paramètre <Message> est toujours vide.Le paramètre <Message> contient un code qui indique la raison de la fermeture.
    SocketErreurUne erreur s'est produite durant la communication avec le serveur. Le paramètre <Message> est toujours vide.
    SocketMessageLe socket a reçu un message. Le paramètre <Message> contient les données relatives au message.
  • <Message> correspond au message reçu en réponse du serveur en fonction de l'<Evénement>.
Remarque : Il n'est pas nécessaire de passer des paramètres à cette procédure. En effet, ces paramètres sont renseignés automatiquement.
<Protocole(s)> : Chaîne de caractères (avec guillemets) ou tableau de chaînes de caractères (optionnel)
Protocole(s) correspondant au format de la réponse du WebSocket. Par exemple : "JSON", "XML". Si ce paramètre n'est pas précisé ou correspond à une chaîne vide, aucun protocole n'est utilisé.
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindows MobileJavaCode Utilisateur (MCU)

Optimisation des connexions dans le cas d'une adresse IP

Lorsqu'une adresse IP est passée à la fonction SocketConnecte, 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 pour 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
WINDEVWEBDEV - Code ServeurAndroidWidget AndroidiPhone/iPadWindows MobileJava

Délai d'attente

Le délai indiqué par le paramètre <Délai maximal> 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 de la manière suivante :
    Socket.Option = SocketOptimiseConnexionIP
    iPhone/iPad Cette solution n'est pas disponible.
WINDEVEtats et RequêtesWindows MobileCode Utilisateur (MCU)

Connexion à un port infrarouge

Pour se connecter à un socket utilisant un port infrarouge :
  1. Créez un socket utilisant le port infrarouge sur le poste serveur (fonction SocketCréeInfraRouge dans une application WINDEV).
  2. Dans l'application cliente (application WINDEV), utilisez la fonction SocketConnecteInfraRouge pour se connecter à ce socket.
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.
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.
Versions 23 et supérieures
Universal Windows 10 App

Fonctionnalité d'application requise

L’utilisation de cette fonction entraîne la déclaration d'une fonctionnalité d'application dans l'assistant de génération de l'application.
Fonctionnalité requise : Réseaux domestiques et professionnels
Cette fonctionnalité permet aux applications d'utiliser des accès entrants et sortants vers des réseaux domestiques et professionnels.
Nouveauté 23
Universal Windows 10 App

Fonctionnalité d'application requise

L’utilisation de cette fonction entraîne la déclaration d'une fonctionnalité d'application dans l'assistant de génération de l'application.
Fonctionnalité requise : Réseaux domestiques et professionnels
Cette fonctionnalité permet aux applications d'utiliser des accès entrants et sortants vers des réseaux domestiques et professionnels.
Universal Windows 10 App

Fonctionnalité d'application requise

L’utilisation de cette fonction entraîne la déclaration d'une fonctionnalité d'application dans l'assistant de génération de l'application.
Fonctionnalité requise : Réseaux domestiques et professionnels
Cette fonctionnalité permet aux applications d'utiliser des accès entrants et sortants vers des réseaux domestiques et professionnels.
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd230com.dll
Windows Mobile wp230com.dll
WEBDEV - Code Navigateur WDJS.DLL
Java wd230java.jar
Linux wd230com.so
Android wd230android.jar
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire