英語で読む

次の方法で共有


Socket.ReceiveMessageFromAsync メソッド

定義

オーバーロード

ReceiveMessageFromAsync(SocketAsyncEventArgs)

指定された SocketFlags を使用し、指定されたバイト数のデータの非同期受信を開始して、データ バッファー内の指定された場所に格納します。さらに、エンドポイントとパケットの情報を格納します。

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

データを受信し、メッセージの送信者に関する追加情報を返します。

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

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

指定された SocketFlags を使用し、指定されたバイト数のデータの非同期受信を開始して、データ バッファー内の指定された場所に格納します。さらに、エンドポイントとパケットの情報を格納します。

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

パラメーター

e
SocketAsyncEventArgs

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

戻り値

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

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

例外

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

Socket が閉じられました。

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

注釈

メソッドは ReceiveMessageFromAsync 、主にコネクションレス ソケットでメッセージ データを受信するために使用されます。 ソケットのローカル アドレスは既知である必要があります。 このメソッドは、データグラムと生のソケットでのみ使用できます。 ソケットは、このメソッドを呼び出す前に、 または Raw に設定されたソケット型でDgram初期化する必要があります。 これは、 を使用して Socketソケットを構築するときに行うことができます。

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

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

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

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

メソッドはReceiveMessageFromAsync、指定Socketされた にPacketInformation対してtrue初めて呼び出されるときにソケット オプションを自動的に設定します。 ただし、 IPPacketInformation オブジェクトは、ソケット オプションが設定された後にローカル コンピューターに到着するパケットに対してのみ有効です。 ソケットがローカル エンドポイント (メソッドによって明示的に、またはメソッドのいずれかによってBind暗黙的に) とメソッドの最初の呼び出しの SendToSendToAsyncConnectConnectAsync間にパケットを送信すると、メソッドの呼び出ReceiveMessageFromAsyncしによって、これらのパケットに対してReceiveMessageFromAsync無効なIPPacketInformationオブジェクトが生成されます。

すべてのIPPacketInformationオブジェクトが有効であることを確認するには、 メソッドを使用してSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)ローカル エンドポイントにtrueバインドする前に、アプリケーションでソケット オプションを に設定PacketInformationする必要があります。

アプリケーションは、ユニキャスト、マルチキャスト、またはブロードキャスト アドレスを使用してデータグラムが送信されたかどうかを知る必要がある場合に、結果の IPPacketInformation オブジェクトを調べることができます。

こちらもご覧ください

適用対象

.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

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

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

データを受信し、メッセージの送信者に関する追加情報を返します。

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

パラメーター

buffer
ArraySegment<Byte>

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

remoteEndPoint
EndPoint

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

戻り値

受信したバイト数と SocketReceiveMessageFromResult 送信ホストに関する追加情報を含む を含む を完了する非同期タスク。

例外

Socket オブジェクトは閉じられています。

remoteEndPointnullです。

この操作を実行する前に、Bind メソッドを呼び出す必要があります。

適用対象

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

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

データを受信し、メッセージの送信者に関する追加情報を返します。

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

パラメーター

buffer
ArraySegment<Byte>

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

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

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

戻り値

受信したバイト数と SocketReceiveMessageFromResult 送信ホストに関する追加情報を含む を含む を完了する非同期タスク。

例外

Socket オブジェクトは閉じられています。

remoteEndPointnullです。

この操作を実行する前に、Bind メソッドを呼び出す必要があります。

適用対象

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

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

データを受信し、メッセージの送信者に関する追加情報を返します。

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

パラメーター

buffer
Memory<Byte>

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

remoteEndPoint
EndPoint

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

cancellationToken
CancellationToken

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

戻り値

受信したバイト数と SocketReceiveMessageFromResult 送信ホストに関する追加情報を含む を含む を完了する非同期タスク。

例外

Socket オブジェクトは閉じられています。

remoteEndPointnullです。

この操作を実行する前に、Bind メソッドを呼び出す必要があります。

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

適用対象

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

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

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

データを受信し、メッセージの送信者に関する追加情報を返します。

C#
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(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

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

戻り値

受信したバイト数と SocketReceiveMessageFromResult 送信ホストに関する追加情報を含む を含む を完了する非同期タスク。

例外

Socket オブジェクトは閉じられています。

remoteEndPointnullです。

この操作を実行する前に、Bind メソッドを呼び出す必要があります。

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

適用対象

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