Socket.BeginReceiveMessageFrom メソッド

定義

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

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

buffer
Byte[]

受信したデータの保存場所となる Byte 型の配列。

offset
Int32

データを格納する、bufferパラメーター内の、インデックス番号が 0 から始まる位置。

size
Int32

受信するバイト数。

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。

remoteEP
EndPoint

同期受信時に EndPoint 更新されるリモート ホストのエンドポイントと同じ型の への参照。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の読み取りを参照する IAsyncResult

例外

buffernull です。

または

remoteEPnull です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。

offset が 0 未満です。

または

offsetbuffer の長さを超えています。

または

size が 0 未満です。

- または -

size が、 buffer の長さから offset パラメーターの値を引いた値を超えています。

Socket が閉じられました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用します。

を実装AsyncCallbackBeginReceiveMessageFromするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginReceiveMessageFrom中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginReceiveMessageFrom 使用します。

非同期 BeginReceiveMessageFrom 操作は、 メソッドを呼び出して完了する EndReceiveMessageFrom 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndReceiveMessageFrom は、操作が完了するまで呼び出し元のスレッドをブロックします。

保留中 BeginReceiveMessageFromの を取り消すには、 メソッドを Close 呼び出します。

このメソッドは、 パラメーターにデータを buffer 読み取り、データの送信元となるリモート ホスト エンドポイントと、受信したパケットに関する情報をキャプチャします。 このエンドポイントを取得する方法については、 を EndReceiveMessageFrom参照してください。 この方法は、不明なホストまたは複数のホストからコネクションレス データグラムを非同期的に受信する場合に最も便利です。

注意

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

注意

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定 Socket のインスタンス、および特定のコールバック) を最初に使用した後、そのコンテキストを後続で使用すると、パフォーマンスが向上します。

適用対象