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