Socket.BeginReceiveMessageFrom メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した 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
パラメーター
- offset
- Int32
データを格納する、buffer
パラメーター内の、インデックス番号が 0 から始まる位置。
- size
- Int32
受信するバイト数。
- socketFlags
- SocketFlags
SocketFlags 値のビットごとの組み合わせ。
- callback
- AsyncCallback
AsyncCallback デリゲート。
- state
- Object
この要求の状態情報を格納するオブジェクト。
戻り値
非同期の読み取りを参照する IAsyncResult。
例外
.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。
offset
が 0 未満です。
または
offset
が buffer
の長さを超えています。
または
size
が 0 未満です。
- または -
size
が、 buffer
の長さから offset
パラメーターの値を引いた値を超えています。
Socket が閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
を実装AsyncCallbackBeginReceiveMessageFromするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginReceiveMessageFrom中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true
設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResult を BeginReceiveMessageFrom 使用します。
非同期 BeginReceiveMessageFrom 操作は、 メソッドを呼び出して完了する EndReceiveMessageFrom 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndReceiveMessageFrom は、操作が完了するまで呼び出し元のスレッドをブロックします。
保留中 BeginReceiveMessageFromの を取り消すには、 メソッドを Close 呼び出します。
このメソッドは、 パラメーターにデータを buffer
読み取り、データの送信元となるリモート ホスト エンドポイントと、受信したパケットに関する情報をキャプチャします。 このエンドポイントを取得する方法については、 を EndReceiveMessageFrom参照してください。 この方法は、不明なホストまたは複数のホストからコネクションレス データグラムを非同期的に受信する場合に最も便利です。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
注意
実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定 Socket のインスタンス、および特定のコールバック) を最初に使用した後、そのコンテキストを後続で使用すると、パフォーマンスが向上します。