Socket.EndReceiveFrom(IAsyncResult, EndPoint) メソッド

定義

特定のエンドポイントからの、保留中の非同期読み込みを終了します。

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

endPoint
EndPoint

コピー元 EndPoint

戻り値

正常に完了した場合は、受信したバイト数。 失敗した場合は、0 を返します。

例外

asyncResultnullです。

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) メソッドへの呼び出しで asyncResult が返されませんでした。

EndReceiveFrom(IAsyncResult, EndPoint) が、非同期の読み取りのために以前に呼び出されています。

ソケットへのアクセスを試行しているときにエラーが発生しました。

- または -

.NET 7 以降のみ: が Socket 閉じられました。

.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。

注釈

重要

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

EndReceiveFrom によって BeginReceiveFrom開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginReceiveFrom

メソッドは EndReceiveFrom 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceiveFrom 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceiveFrom パラメーターBeginReceiveFromsize指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceiveFrom0 バイトが返Shutdownされます。 受信したデータを取得するには、 オブジェクトの メソッドをAsyncStateIAsyncResult呼び出し、結果の状態オブジェクトに含まれるバッファーを抽出します。 元のホストを識別するには、 を抽出 EndPoint し、 に IPEndPointキャストします。 メソッドを IPEndPoint.Address 使用して IP アドレスを取得し、 メソッドを IPEndPoint.Port 使用してポート番号を取得します。

注意

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

Note

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

適用対象