System.Win.ScktComp.TWinSocketStream.Read

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function Read(var Buffer; Count: Longint): Longint; override;

C++

virtual int __fastcall Read(void *Buffer, int Count)/* overload */;
inline int __fastcall  Read(System::DynamicArray<System::Byte> Buffer, int Offset, int Count){ return System::Classes::TStream::Read(Buffer, Offset, Count); }
inline int __fastcall  Read(System::DynamicArray<System::Byte> &Buffer, int Count){ return System::Classes::TStream::Read(Buffer, Count); }

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.Win.ScktComp.pas
System.Win.ScktComp.hpp
System.Win.ScktComp TWinSocketStream

Description

Read lit jusqu'à Count octets de la connexion de socket dans Buffer.

Utilisez la méthode Read pour lire des données dans la connexion de socket quand le nombre d'octets à transférer est inconnu. Buffer doit disposer d'au moins Count octets alloués pour stocker les données lues dans la connexion. Read renvoie le nombre d'octets réellement transférés (qui peut être inférieur au nombre demandé dans Count.)

Read peut renvoyer 0 si la connexion de socket est extrêmement lente et que l'opération de lecture n'a pu être effectuée au bout de TimeOut millisecondes. Cela garantit que la méthode Read ne va pas être bloquée indéfiniment si un problème a lieu dans la connexion de socket.

Pour éviter un dépassement de délai de la méthode Read en raison d'une connexion lente, affectez à Count une valeur basse et appelez plusieurs fois Read au lieu de faire moins d'appels avec une valeur élevée de Count.

Avant d'appeler Read, pour garantir que la connexion de socket est prête à envoyer des données, utilisez la méthode WaitForData.

A la différence de la méthode ReadBuffer, Read ne déclenche pas une exception s'il n'y pas Count octets lus dans la connexion de socket.

Voir aussi