Socket.ReceiveFromAsync メソッド

定義

オーバーロード

ReceiveFromAsync(SocketAsyncEventArgs)

指定したネットワーク デバイスから、データの非同期の受信を開始します。

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

指定した SocketFlags を使用し、データグラムを受信してデータバッファーに格納します。さらに、エンドポイントを格納します。

ReceiveFromAsync(SocketAsyncEventArgs)

指定したネットワーク デバイスから、データの非同期の受信を開始します。

public:
 bool ReceiveFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveFromAsync (e As SocketAsyncEventArgs) As Boolean

パラメーター

e
SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。

戻り値

I/O 操作が保留中の場合は true。 操作の完了時に、e パラメーターの Completed イベントが発生します。

I/O 操作が同期的に完了した場合は false。 この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。

例外

RemoteEndPoint に null 値を指定することはできません。

e パラメーターに指定された SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。

Socket が閉じられました。

ソケットへのアクセスを試行しているときにエラーが発生しました。

注釈

メソッドは ReceiveFromAsync 、主にコネクションレス ソケットでデータを受信するために使用されます。 ソケットのローカル アドレスは既知である必要があります。

呼び出し元は、 プロパティをSocketAsyncEventArgs.RemoteEndPointEndPointリモート ホストのエンドポイントと同じ型の に設定する必要があります。 プロパティは、実際のリモート エンドポイントへの正常な受信時に更新されます。

パラメーターの e プロパティはSocketAsyncEventArgs.SocketFlags、Window Sockets サービス プロバイダーに読み取り要求に関する追加情報を提供します。 このパラメーターの使用方法の詳細については、「」を参照してください System.Net.Sockets.SocketFlags

このメソッドを正常に呼び出すには、オブジェクトの System.Net.Sockets.SocketAsyncEventArgs 次のプロパティとイベントが必要です。

呼び出し元は、コールバック メソッドで情報を取得できるように、 メソッドをReceiveFromAsync呼び出す前に必要な任意のユーザー状態オブジェクトに プロパティを設定SocketAsyncEventArgs.UserTokenできます。 コールバックで 1 つのオブジェクトよりも多くの情報が必要な場合は、他の必須状態情報をメンバーとして保持する小さなクラスを作成できます。

メッセージ指向ソケットの場合、受信メッセージはバッファーの合計サイズまでバッファーに配置されます。 プロパティと SocketAsyncEventArgs.Offset プロパティはSocketAsyncEventArgs.Count、バッファー内のデータの配置場所とデータ量を決定します。

バイト ストリーム スタイルのソケットの場合、バッファーがいっぱいになるまで、接続が閉じられるか、内部バッファーに格納されたデータが使い果たされるまで、受信データがバッファーに配置されます。 プロパティと SocketAsyncEventArgs.Offset プロパティはSocketAsyncEventArgs.Count、バッファー内のデータの配置場所とデータ量を決定します。

こちらもご覧ください

適用対象

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)

パラメーター

buffer
ArraySegment<Byte>

受信したデータのバッファー。

remoteEndPoint
EndPoint

リモート ホストのエンドポイントと同じ種類のエンドポイント。

戻り値

受信したバイト数と SocketReceiveFromResult 送信ホストのエンドポイントを含む で完了する非同期タスク。

例外

remoteEndPointnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。

適用対象

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)

パラメーター

buffer
ArraySegment<Byte>

受信したデータのバッファー。

socketFlags
SocketFlags

データの受信時に使用される SocketFlags 値のビットごとの組み合わせ。

remoteEndPoint
EndPoint

リモート ホストのエンドポイントと同じ種類のエンドポイント。

戻り値

受信したバイト数と SocketReceiveFromResult 送信ホストのエンドポイントを含む で完了する非同期タスク。

例外

remoteEndPointnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。

適用対象

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)

パラメーター

buffer
Memory<Byte>

受信したデータのバッファー。

remoteEndPoint
EndPoint

リモート ホストのエンドポイントと同じ種類のエンドポイント。

cancellationToken
CancellationToken

非同期操作のキャンセルが必要であることを示すために使用できるキャンセル トークン。

戻り値

受信したバイト数と SocketReceiveFromResult 送信ホストのエンドポイントを含む で完了する非同期タスク。

例外

remoteEndPointnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)

パラメーター

buffer
Memory<Byte>

受信したデータのバッファー。

socketFlags
SocketFlags

データの受信時に使用される SocketFlags 値のビットごとの組み合わせ。

remoteEndPoint
EndPoint

リモート ホストのエンドポイントと同じ種類のエンドポイント。

cancellationToken
CancellationToken

非同期操作のキャンセルが必要であることを示すために使用できるキャンセル トークン。

戻り値

受信したバイト数と SocketReceiveFromResult 送信ホストのエンドポイントを含む で完了する非同期タスク。

例外

remoteEndPointnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

指定した SocketFlags を使用し、データグラムを受信してデータバッファーに格納します。さらに、エンドポイントを格納します。

public System.Threading.Tasks.ValueTask<int> ReceiveFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress receivedAddress, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, receivedAddress As SocketAddress, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

パラメーター

buffer
Memory<Byte>

受信したデータのバッファー。

socketFlags
SocketFlags

データの受信時に SocketFlags 使用される値のビットごとの組み合わせ。

receivedAddress
SocketAddress

SocketAddressこのメソッドが返されたときにリモート ピアの値で更新されるインスタンス。

cancellationToken
CancellationToken

非同期操作のキャンセルが必要であることを示すために使用できるキャンセル トークン。

戻り値

受信したバイト数と SocketReceiveFromResult 送信ホストのエンドポイントを含む で完了する非同期タスク。

例外

receivedAddressnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象