System.Win.ScktComp.TWinSocketStream.Read
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.