Socket.EndReceiveFrom(IAsyncResult, EndPoint) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定のエンドポイントからの、保留中の非同期読み込みを終了します。
public:
int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom (IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) As Integer
パラメーター
- asyncResult
- IAsyncResult
この非同期操作の状態情報およびユーザー定義データを格納する IAsyncResult。
戻り値
正常に完了した場合は、受信したバイト数。 失敗した場合は、0 を返します。
例外
asyncResult
が null
です。
BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) メソッドへの呼び出しで asyncResult
が返されませんでした。
EndReceiveFrom(IAsyncResult, EndPoint) が、非同期の読み取りのために以前に呼び出されています。
.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
EndReceiveFrom によって BeginReceiveFrom開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginReceiveFrom 。
メソッドは EndReceiveFrom 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceiveFrom 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceiveFrom パラメーターBeginReceiveFromでsize
指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceiveFrom0 バイトが返Shutdownされます。 受信したデータを取得するには、 オブジェクトの メソッドをAsyncStateIAsyncResult呼び出し、結果の状態オブジェクトに含まれるバッファーを抽出します。 元のホストを識別するには、 を抽出 EndPoint し、 に IPEndPointキャストします。 メソッドを IPEndPoint.Address 使用して IP アドレスを取得し、 メソッドを IPEndPoint.Port 使用してポート番号を取得します。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
適用対象
.NET