Socket.BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) メソッド


指定した SocketFlags を使用し、指定したバイト数のデータの非同期受信を開始して、データ バッファー内の指定した位置に格納します。さらに、エンドポイントとパケット情報を格納します。Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

 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



受信したデータの保存場所となる Byte 型の配列。An array of type Byte that is the storage location for the received data.


データを格納する、bufferパラメーター内の、インデックス番号が 0 から始まる位置。The zero-based position in the buffer parameter at which to store the data.


受信するバイト数。The number of bytes to receive.


SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.


データのソースを表す EndPointAn EndPoint that represents the source of the data.


AsyncCallback デリゲート。The AsyncCallback delegate.


この要求の状態情報を格納するオブジェクト。An object that contains state information for this request.



非同期の読み取りを参照する IAsyncResultAn IAsyncResult that references the asynchronous read.


buffernullです。buffer is null.

または-or- remoteEPnullです。remoteEP is null.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

offset が 0 未満です。offset is less than 0.

または-or- offsetbuffer の長さを超えています。offset is greater than the length of buffer.

または-or- size が 0 未満です。size is less than 0.

- または --or- size が、 buffer の長さから offset パラメーターの値を引いた値を超えています。size is greater than the length of buffer minus the value of the offset parameter.

Socket が閉じられました。The Socket has been closed.


非同期の受信操作は、メソッドを呼び出すことによって完了する必要があり EndReceiveMessageFrom ます。The asynchronous receive operation must be completed by calling the EndReceiveMessageFrom method. 通常、メソッドはデリゲートによって呼び出され asyncCallback ます。Typically, the method is invoked by the asyncCallback delegate.

このメソッドは、操作が完了するまでブロックしません。This method does not block until the operation completes. 操作が完了するまでブロックするには、メソッドを使用し ReceiveMessageFrom ます。To block until the operation completes, use the ReceiveMessageFrom method.

保留中のを取り消すには、 BeginReceiveMessageFrom メソッドを呼び出し Close ます。To cancel a pending BeginReceiveMessageFrom, call the Close method.

非同期プログラミングモデルの使用方法の詳細については、「同期メソッドの非同期呼び出し」を参照してください。For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously

このメソッドは、データをパラメーターに読み込み、 buffer データの送信元のリモートホストエンドポイント、および受信パケットに関する情報をキャプチャします。This method reads data into the buffer parameter, and captures the remote host endpoint from which the data is sent, as well as information about the received packet. このエンドポイントを取得する方法の詳細については、「」を参照してください EndReceiveFromFor information on how to retrieve this endpoint, refer to EndReceiveFrom. このメソッドは、不明なホストまたは複数のホストからコネクションレスのデータグラムを非同期的に受信する場合に最も役立ちます。This method is most useful if you intend to asynchronously receive connectionless datagrams from an unknown host or multiple hosts.


を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.


このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.


非同期メソッドに対して、実行コンテキスト (セキュリティコンテキスト、権限を借用したユーザー、および呼び出し元のコンテキスト) がキャッシュされ Socket ます。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 特定のコンテキスト (特定の非同期メソッド、特定のインスタンス、および特定のコールバック) を初めて使用した後 Socket Socket 、そのコンテキストを使用すると、パフォーマンスが向上します。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.