PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Nombre d'octets transmis
  • Communication avec des automates ou des applications non WINDEV
  • Transmission entre deux postes utilisant des formats de chaînes de caractères différents (UNICODE et ANSI)
  • Permissions requises
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
Récupère un message envoyé par un autre socket. Cette fonction peut être utilisée sur un poste client ou un poste serveur.
Remarques :
  • Socket UDP : Le protocole UDP étant un protocole "Non connecté", lors de la récupération du message, WINDEV enregistre l'adresse IP et le port de la machine qui a envoyé le message. Ces informations sont disponibles avec la fonction SocketClientInfo.
  • Socket SSL : La fonction SocketLit peut être utilisée avec les sockets SSL.
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 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.
WINDEVEtats et RequêtesJavaCode Utilisateur (MCU)
// Ajout des messages reçus dans une table
TableAjoute(TABLE_Table1, "1" + TAB + SocketLit("Serveur", Faux) + ...
TAB + SocketClientInfo("serveur", SocketAdresse) + ...
TAB + SocketClientInfo("serveur", SocketPort))
Windows Mobile
// Affichage du message reçu
Info(SocketLit("Serveur", Faux))
WEBDEV - Code ServeurPHPAjax
TANTQUE SocketExiste("MonSocket") = Vrai
sMsg est une chaîne = SocketLit("MonSocket", Vrai)
SI sMsg <> "" ALORS
ListeAjoute(LISTE_Messages, Maintenant() + " " + sMsg)
FIN
FIN
Syntaxe
<Résultat> = SocketLit(<Nom du socket> [, <Attente indéfinie> [, <Attente maximale> [, <Nombre maximum d'octets>]]])
<Résultat> : Buffer ou chaîne de caractères
  • Message lu.
  • Buffer vide ou chaîne vide ("") si aucun message n'a été reçu.
<Nom du socket> : Chaîne de caractères (avec guillemets)
Nom du socket qui a reçu le message.
Dans des applications WINDEV :
WINDEV Attention : le nom du socket est "case-sensitive".
<Attente indéfinie> : Booléen optionnel
  • Vrai (valeur par défaut) : attente indéfinie d'un message de client.
  • Faux : attente jusqu'à l'<Attente maximale>.
<Attente maximale> : Entier optionnel ou Durée optionnelle
Attente maximale (en millisecondes) d'un message de client si l'attente indéfinie est à Faux. 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 à 1000 millisecondes (1 seconde).
<Nombre maximum d'octets> : Entier optionnel
Nombre maximum de caractères pouvant être transmis. Le nombre de caractères reçus n'est pas garanti.
Ce paramètre est pris en compte uniquement si la constante SocketSansMarqueurFin est spécifiée dans la fonction SocketChangeModeTransmission. Dans le cas contraire, ce paramètre est ignoré.
Par défaut, ce paramètre correspond à 4096 octets.
Remarques
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindows MobileJavaCode Utilisateur (MCU)

Nombre d'octets transmis

Le paramètre <Nombre maximum d'octets> correspond au nombre maximum de caractères pouvant être transmis. Le nombre de caractères reçus n'est pas garanti.
La fonction SocketLit lit une trame réseau et la retourne immédiatement, sans transformation. Or la taille d'une trame réseau dépend de nombreux facteurs (paramétrage du réseau, vitesse et encombrement du réseau, ...).
La fonction SocketEcrit envoie si possible le buffer passé en paramètre en une seule trame. Mais si le réseau n'accepte pas cette trame, le buffer peut être découpé en plusieurs trames (ou à l'inverse, le réseau peut fusionner des messages en une seule trame pour optimiser la bande passante).
Pour s'assurer de l'intégrité des messages transmis, il est nécessaire d'utiliser un protocole natif WINDEV et WEBDEV (avec les constantes SocketTailleDébut et SocketMarqueurFin de la fonction SocketChangeModeTransmission) ou d'implémenter un protocole spécifique.

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.

Transmission entre deux postes utilisant des formats de chaînes de caractères différents (UNICODE et ANSI)

Lors de la transmission de messages entre deux postes utilisant un format de chaînes de caractères différent (par exemple Windows (ANSI) et Windows Mobile (UNICODE)), certaines conversions peuvent être nécessaires. Ces conversions peuvent être effectuées grâce aux fonctions AnsiVersUnicode et UnicodeVersAnsi.
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.
Composante : wd240com.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Limitation Android
Socket lit est bloquant (attente avec durée maximale non prise en compte) pour la version 4.1 d'Android
Thierry
15 mar. 2018