System.Net.Socket.TSocket.ReceiveFrom
Delphi
function ReceiveFrom(var Buf; Count: Integer; Flags: Integer): Integer; overload;
function ReceiveFrom(var Buf; Count: Integer; Flags: TSocketFlags = []): Integer; overload; inline;
function ReceiveFrom(Count: Integer = -1; Flags: TSocketFlags = []): TBytes; overload; inline;
function ReceiveFrom(out Bytes: TBytes; Count: Integer = -1; Flags: TSocketFlags = []): Integer; overload; inline;
function ReceiveFrom(var Bytes: array of Byte; Offset: Integer = 0; Count: Integer = -1; Flags: TSocketFlags = []): Integer; overload;
function ReceiveFrom(var Buf; Count: Integer; out Endpoint: TNetEndpoint; Flags: Integer): Integer; overload;
function ReceiveFrom(var Buf; Count: Integer; out Endpoint: TNetEndpoint; Flags: TSocketFlags = []): Integer; overload; inline;
function ReceiveFrom(out Endpoint: TNetEndpoint; Count: Integer = -1; Flags: TSocketFlags = []): TBytes; overload; inline;
function ReceiveFrom(out Bytes: TBytes; out Endpoint: TNetEndpoint; Count: Integer = -1; Flags: TSocketFlags = []): Integer; overload;
function ReceiveFrom(var Bytes: array of Byte; out Endpoint: TNetEndpoint; Offset: Integer = 0; Count: Integer = -1; Flags: TSocketFlags = []): Integer; overload;
C++
int __fastcall ReceiveFrom(void *Buf, int Count, int Flags)/* overload */;
int __fastcall ReceiveFrom(void *Buf, int Count, TSocketFlags Flags = TSocketFlags() )/* overload */;
System::DynamicArray<System::Byte> __fastcall ReceiveFrom(int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
int __fastcall ReceiveFrom(/* out */ System::DynamicArray<System::Byte> &Bytes, int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
int __fastcall ReceiveFrom(System::Byte *Bytes, const int Bytes_High, int Offset = 0x0, int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
int __fastcall ReceiveFrom(void *Buf, int Count, /* out */ TNetEndpoint &Endpoint, int Flags)/* overload */;
int __fastcall ReceiveFrom(void *Buf, int Count, /* out */ TNetEndpoint &Endpoint, TSocketFlags Flags = TSocketFlags() )/* overload */;
System::DynamicArray<System::Byte> __fastcall ReceiveFrom(/* out */ TNetEndpoint &Endpoint, int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
int __fastcall ReceiveFrom(/* out */ System::DynamicArray<System::Byte> &Bytes, /* out */ TNetEndpoint &Endpoint, int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
int __fastcall ReceiveFrom(System::Byte *Bytes, const int Bytes_High, /* out */ TNetEndpoint &Endpoint, int Offset = 0x0, int Count = 0xffffffff, TSocketFlags Flags = TSocketFlags() )/* overload */;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | System.Net.Socket.pas System.Net.Socket.hpp |
System.Net.Socket | TSocket |
Description
La méthode Receive reçoit les données à partir d'un socket distant.
Pour utiliser ReceiveFrom, le type de votre socket doit être TCP
ou UDP
.
ReceiveFrom bloque l'appelant jusqu'à ce qu'il renvoie les données demandées.
Vous pouvez transmettre les paramètres suivants à ReceiveFrom :
Buf
est un pointeur vers le tampon qui reçoit les données entrantes.Offset
est un nombre d'octets à ignorer au début des données demandées.Count
est la longueur (en octets) du tampon pointé parBuf
, qui est également la longueur maximale des données demandées renvoyées par ReceiveFrom.Flags
est un ensemble d'indicateurs qui influencent le comportement de ReceiveFrom. Pour de plus amples informations, voir la documentation de la fonction recvfrom (EN) (MSDN).
Le paramètre de sortie Endpoint
indique le point de terminaison source qui envoie les données.
Au lieu de fournir un pointeur vers un tampon (Buf
), vous pouvez ne pas fournir un tel argument et laisser ReceiveFrom renvoyer les données demandées, ou bien vous pouvez fournir un paramètre de sortie, Bytes
, que ReceiveFrom pourra remplir avec les données demandées. Dans les deux cas, les données renvoyées ne sont pas plus nombreuses que le nombre d'octets spécifié par Count
.
Exceptions
Un appel à ReceiveFrom peut déclencher l'une des exceptions suivantes :
Exception | Exception.Message | Scénarios |
---|---|---|
Erreur de socket réseau : <message d'erreur> (<code d'erreur>), sur la fonction 'ioctlsocket' de l'API |
| |
Erreur de socket réseau : <message d'erreur> (<code d'erreur>), sur la fonction 'recvfrom' de l'API |
|
Voir aussi
- System.Net.Socket.TSocket.BeginReceiveFrom
- System.Net.Socket.TSocket.EndReceiveBytesFrom
- System.Net.Socket.TSocket.EndReceiveStringFrom
- Fonction send (EN) (MSDN)