System.Net.Socket.TSocket.ReceiveFrom

提供: RAD Studio API Documentation
移動先: 案内検索

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 */;

プロパティ

種類 可視性 ソース ユニット
function public
System.Net.Socket.pas
System.Net.Socket.hpp
System.Net.Socket TSocket


説明

リモート ソケットからデータを受信します。

ReceiveFrom を使用するには、ソケットの種類TCPUDP のどちらかでなければなりません。

ReceiveFrom は、要求されたデータを返すまで呼び出し側をブロックします。

ReceiveFrom には、次のパラメータを渡すことができます。

  • Buf は、着信データを受信するバッファのポインタです。
  • Offset は、要求されたデータの先頭から読み飛ばすバイト数です。
  • Count は、Buf で指しているバッファの長さ(バイト単位)で、これは、ReceiveFrom で返される要求データの最大長でもあります。
  • Flags は、ReceiveFrom の動作を左右するフラグの集合です。詳細については、MSDN で recvfrom 関数のドキュメントを参照してください。

出力パラメータ Endpoint は、データの送信元のエンドポイントを示します。

バッファのポインタ(Buf)を指定する代わりに、そのような引数を指定せずに ReceiveFrom に要求データを返させるか、出力パラメータ Bytes を指定して、そこに ReceiveFrom に要求データを格納させることもできます。どちらの場合も、返されるデータが指定された Count バイトを上回ることはありません。

例外

ReceiveFrom を呼び出すと、次の例外が発生する可能性があります。

例外 Exception.Message シナリオ

ESocketError

ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'ioctlsocket'

ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'recvfrom'

関連項目