⇨ MENU ⇨ BIBLIOTHEQUE ⇨ socklib.bbc
FN_writesocket()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ socklib.bbc
FN_writesocket()
DESCRIPTION.
La fonction FN_writesocket() envoie une suite d'octets débutant à une certaine adresse mémoire.
SYNTAXE.
kenvoyees = FN_writesocket( socket , debut , quantite )
REMARQUES.
socket doit être l'identifiant de la variable ayant reçue la valeur retournée par la fonction :
- FN_tcplisten(), si l'envoi est fait depuis un client vers le serveur :
- FN_check_connection(), si l'envoi est fait depuis un serveur vers le client qui l'a sollicité.
debut doit être un nombre entier indiquant l'adresse mémoire du premier octet à transmettre.
quantite doit être un nombre entier indiquant le nombre d'octets à transmettre.
La fonction FN_writesocket() va retournée une valeur numérique indiquant le nombre d'octets réellement envoyés par la machine émettrice vers la machine réceptrice.
Note : la fonction FN_writesocket() peut retourner une valeur inférieure à la longueur totale des données. Cela indique que seules certaines données ont pues être envoyées. Il faudra alors effectuer d'autres appels de la fonction FN_writesocket(), en modifiant debut et éventuellement quantite, jusqu’à ce que toutes les données soient bien transmises.
Voir l'instruction DIM qui permet de réserver une zone en mémoire, d'un certain nombre d'octets, et qui retourne dans une variable l'adresse du premier octet de cette zone.
Voir la fonction FN_readsocket() qui réceptionne et écrit les données dans la mémoire de la machine réceptrice.
Voir la fonction FN_writelinesocket() pour envoyer directement une chaine de caractères.
Rappel : la procédure PROC_initsockets() doit être appelée avant toute autre utilisation d'une procédure ou fonction du module socklib.bbc. et la procédure PROC_exitsockets devra être appelée dès que toutes les opérations de communication seront terminées, et avant de terminer et de fermer l'application.
La fonction FN_writesocket() est importée depuis le module socklib.bbc.
EXEMPLE.
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "socklib.bbc"
REM --- INITIALISATION GENERALE ---
ON CLOSE PROC_Fermeture
DIM ADR_Debut 1024 : REM --- reserve 1024 octets en memoire et indique l'adresse du premier octet dans ADR_Bebut
REM --- Initialisation de socklib ---
PROC_initsockets
REM --- Creation du serveur ---
kserveur = FN_tcplisten( "" , "1234" )
REM --- Mise en attende d'une sollicitation du client ---
PRINT "Serveur en attente sur le port 1234..."
REPEAT
kclient = FN_check_connection( kserveur )
UNTIL kclient <> 0
PRINT "Client connecté !"
REM --- Envoi de donnees sous la forme de 1024 valeurs d'octets ---
kenvoyees = FN_writesocket( kclient , ADR_Debut , 1024 )
REM --- Fermeture du canal de communication (socket) ---
PRINT "Client déconnecte."
PROC_closesocket( kclient )
REM --- Fermeture du reseau ---
PRINT "Reseau ferme."
PROC_Fermeture
END
REM --- Gestion de la fermeture du programme ---
DEF PROC_Fermeture
PROC_exitsockets
QUIT
ENDPROC
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.