version 6.7
TCP_ReceiveBLOB (tcp_ID; donnéesReçues) Entier
Paramètre | Type | Description | |
tcp_ID | Entier long | Référence à une session TCP ouverte | |
donnéesReçues | BLOB | BLOB devant recevoir les données | |
Résultat | Entier | Code d'erreur |
Description
La commande TCP_ReceiveBLOB permet de recevoir des paquets de données au cours d'une session TCP. Son fonctionnement est semblable à celui de la commande TCP_Receive, à la différence près qu'elle reçoit des données de type BLOB au lieu d'un texte. Ce principe permet de s'affranchir de la limite des 32 000 caractères inhérente aux données de type Texte, et de recevoir des données binaires.
Passez dans tcp_ID la référence d'une session TCP ouverte avec la commande TCP_Open ou TCP_Listen.
Le paramètre donnéesReçues retourne les données reçues dans un BLOB.
Lors de la réception de données par paquets TCP, vous ne pouvez pas avoir la certitude que la totalité des données ont été reçues via un seul appel à TCP_ReceiveBLOB. La commande TCP_ReceiveBLOB est donc généralement utilisée dans une boucle du type Repeter...Jusque qui vérifie en permanence le statut de la connexion ou attend une valeur particulière.
Exemple
Voici la structure type d'une méthode utilisant la commande TCP_ReceiveBLOB :
C_BLOB($Blob_Reçu;$Blob_Concaténé) C_ENTIER LONG($srcpos;$dstpos) Repeter $Err:=TCP_ReceiveBLOB ($TCP_ID;$Blob_Reçu) $Err:=TCP_State ($TCP_ID;$State) $srcpos:=0 $dstpos:=Taille BLOB($Blob_Concaténé) `Concaténation des données reçues COPIER BLOB($Blob_Reçu;$Blob_Concaténé;$srcpos;$dstpos;Taille BLOB($Blob_Reçu)) Jusque (($State=0) | ($Err#0))
Référence
TCP_Listen, TCP_Open, TCP_Receive, TCP_SendBLOB.