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 のインスタンス、および特定のコールバック) を最初に使用した後、そのコンテキストを後続で使用すると、パフォーマンスが向上します。
適用対象
.NET