Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE ⇨ socklib.bbc

FN_readsocket()

DESCRIPTION.


La fonction FN_readsocket() récepptionne une suite d'octets et les écrit dans la mémoire de la machine réceptrice à partir d'une certaine adresse.



SYNTAXE.


krecues = FN_readsocket( 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 où sera placée la valeur du premier octet réceptionné.


quantite doit être un nombre entier indiquant le nombre maximum d'octets qui pourront être réceptionnés puis écrit.



La fonction FN_readsocket() va retournée une valeur numérique indiquant le nombre d'octets reçus par la machine réceptrice. Si une erreur est survenue durant la réception des données la FN_readsocket() retournera la valeur -1.


Note : La fonction FN_readsocket() n'attend pas la réception de données. Si aucune donnée n'est reçue lors de son appel, elle retourne la valeur 0.



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_writesocket() qui envoie une suite d'octets débutant à une certaine adresse mémoire.

Voir la fonction FN_readlinesocket() pour recevoir 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_readsocket() 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 --- reception de donnees sous la forme de 1024 valeurs d'octets ---

REPEAT

krecues = FN_readsocket( kclient , ADR_Debut , 1024 )

UNTIL krecues > 0


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

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse