Il existe des événements relatifs au fonctionnement des sockets, et des paramètres qui leur sont associés. Il faut savoir que la création d'un socket sur votre machine entraîne sur le serveur distant l'ouverture d'un socket jumeau, entre lesquels la communication pourra se faire. Tant que ce socket jumeau n'est pas ouvert, il est inutile de vouloir lire et écrire sur le socket client, c'est pourquoi il faut toujours traiter l'événement d'ouverture de socket avant tout autre traitement.

L'événement d'ouverture du socket jumeau sur le serveur distant est interceptable par une ligne de la forme:
ON 1:SOCKOPEN:<Nom du socket>: <Bloc d'instructions>
Le paramètre <Nom du socket> peut être remplacé par une expression avec jokers. Dans tous les cas, lorsqu'un tel événement est intercepté, le paramètre $sockname prend le nom du socket concerné.

L'événement contraire à sockopen est sockclose:
ON 1:SOCKCLOSE:<Nom du socket>: <Bloc d'instructions>
Tous les événements dont il est question ici renvoient une variable $sockerr qui doit être égale à zéro si les choses se passent bien. Dans le cas contraire, une erreur doit être traitée.

Dans le cas de on ... sockopen, il y a erreur d'ouverture si, par exemple, le serveur à l'adresse et au port désignés n'existe pas.

Enfin il existe deux autres événements, qui permettent de savoir si un message a été lu ou écrit sur un sockets. Ces événements sont les suivants:
ON 1:SOCKREAD:<Nom du socket>: <Bloc d'instructions>
cette ligne doit contenir, dans le <Bloc d'instruction>, un appel de procédure du type /sockread %variable qui stocke dans %variable le message lu par le socket. Lorsque le socket est lu, le tampon de lecture est vidé.

Le pendant de la procédure /sockread est la procédure /sockwrite -n <Nom du socket> <message> qui permet d'écrire sur le socket.

Il existe aussi un événement d'écriture, qui est le suivant:
ON 1:SOCKWRITE:<Nom du socket>: <Bloc d'instructions>
événement que j'utilise peu. Dans tous les cas, $sockerr est renvoyé

Précédent: Les sockets clients   Suivant: La fonction $sock()   Début de page   Sommaire