英語で読む

次の方法で共有


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)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

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

C#
public bool ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs e);

パラメーター

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、バッファー内のデータの配置場所とデータ量を決定します。

こちらもご覧ください

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

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

C#
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);

パラメーター

buffer
ArraySegment<Byte>

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

remoteEndPoint
EndPoint

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

戻り値

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

例外

remoteEndPointnullです。

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

Socket が閉じられました。

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET 7, 8, 9, 10

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

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

C#
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);

パラメーター

buffer
ArraySegment<Byte>

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

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

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

戻り値

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

例外

remoteEndPointnullです。

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

Socket が閉じられました。

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9, 10

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

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

C#
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);

パラメーター

buffer
Memory<Byte>

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

remoteEndPoint
EndPoint

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

cancellationToken
CancellationToken

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

戻り値

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

例外

remoteEndPointnullです。

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

Socket が閉じられました。

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

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET 7, 8, 9, 10

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

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

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

C#
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);

パラメーター

buffer
Memory<Byte>

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

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

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

cancellationToken
CancellationToken

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

戻り値

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

例外

remoteEndPointnullです。

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

Socket が閉じられました。

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

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9, 10

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

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

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

C#
public System.Threading.Tasks.ValueTask<int> ReceiveFromAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress receivedAddress, System.Threading.CancellationToken cancellationToken = default);

パラメーター

buffer
Memory<Byte>

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

socketFlags
SocketFlags

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

receivedAddress
SocketAddress

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

cancellationToken
CancellationToken

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

戻り値

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

例外

receivedAddressnullです。

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

Socket が閉じられました。

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

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET 8, 9, 10