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 */;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Net.Socket.pas System.Net.Socket.hpp |
System.Net.Socket | TSocket |
説明
リモート ソケットからデータを受信します。
ReceiveFrom を使用するには、ソケットの種類が TCP
か UDP
のどちらかでなければなりません。
ReceiveFrom は、要求されたデータを返すまで呼び出し側をブロックします。
ReceiveFrom には、次のパラメータを渡すことができます。
Buf
は、着信データを受信するバッファのポインタです。Offset
は、要求されたデータの先頭から読み飛ばすバイト数です。Count
は、Buf
で指しているバッファの長さ(バイト単位)で、これは、ReceiveFrom で返される要求データの最大長でもあります。Flags
は、ReceiveFrom の動作を左右するフラグの集合です。詳細については、MSDN で recvfrom 関数のドキュメントを参照してください。
出力パラメータ Endpoint
は、データの送信元のエンドポイントを示します。
バッファのポインタ(Buf
)を指定する代わりに、そのような引数を指定せずに ReceiveFrom に要求データを返させるか、出力パラメータ Bytes
を指定して、そこに ReceiveFrom に要求データを格納させることもできます。どちらの場合も、返されるデータが指定された Count
バイトを上回ることはありません。
例外
ReceiveFrom を呼び出すと、次の例外が発生する可能性があります。
例外 | Exception.Message | シナリオ |
---|---|---|
ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'ioctlsocket' |
| |
ネットワーク ソケット エラー: <エラー メッセージ> (<エラー コード>)、API 'recvfrom' |
|
関連項目
- System.Net.Socket.TSocket.BeginReceiveFrom
- System.Net.Socket.TSocket.EndReceiveBytesFrom
- System.Net.Socket.TSocket.EndReceiveStringFrom
- send 関数(MSDN)