Principe de fonctionnement d'un socket
(Traduction du document original anglais)
Introduction
Le socket est l'élément de base de la communication TCP. C'est lui qui transporte les données.
Les sockets fournis par la bibliothèque de fonctions TCP/IP ne servent qu'à la gestion des flux et à la connexion entre deux équipements.
NOTE : L'architecture TSX ETY 5103 Premium peut prendre en charge jusqu'à 64 sockets. Ils peuvent être utilisés comme sockets d'écoute (serveur) ou comme sockets connectés (client). Dans une application serveur, au moins 1 socket doit être configuré comme socket d'écoute. C'est la seule restriction stricte concernant le nombre de connexions côté client et côté serveur.
Pour créer un socket, vous pouvez utiliser la fonction FCT_SOCKET ou la fonction FCT_ACCEPT. La fonction renvoie un numéro qui sert à accéder au socket.
Etablissement d'une connexion serveur
Le tableau suivant décrit les différentes étapes à mettre en œuvre côté serveur pour établir une connexion.
Etape
Action
1
Créer un socket à l'aide de la fonction FCT_SOCKET.
2
Associer le socket créé à une adresse (numéro de port et adresse IP) à l'aide de la fonction FCT_BIND.
3
Configurer le socket de sorte qu'il accepte les connexions à l'aide de la fonction FCT_LISTEN.
Remarque : L'automate sert de serveur TCP : le socket initial écoute et reçoit les appels de connexion du socket client.
4
Appliquer la fonction FCT_ACCEPT à ce socket pour créer un nouveau socket qui établira la connexion.
Remarque : Ce nouveau socket est alors connecté au socket client et son numéro est renvoyé par la fonction FCT_ACCEPT. Le socket initial est alors libéré pour les autres clients qui souhaitent se connecter au serveur.
Etablissement d'une connexion client
Le tableau suivant décrit les différentes étapes à mettre en œuvre côté client pour établir une connexion.
Etape
Action
1
Créer un socket à l'aide du bloc fonction FCT_SOCKET. Le bloc renvoie un numéro de socket qui servira dans les blocs fonction suivants.
2
La fonction FCT_CONNECT permet d'établir une connexion avec un autre équipement Ethernet en spécifiant son adresse IP et le port que vous utiliserez pour la communication.
Echange de données via une connexion TCP
Une fois la connexion établie, les données peuvent être transférées. Les transferts sont exécutés par les fonctions FCT_SEND et FCT_RECEIVE. Le schéma ci-dessous montre comment fonctionnent ces échanges.
Gestion des sockets
D'autres fonctions peuvent être utilisées pour agir sur les sockets.