次の方法で共有


Socket.EndReceive メソッド

定義

保留中の非同期読み取りを終了します。

オーバーロード

EndReceive(IAsyncResult)

保留中の非同期読み取りを終了します。

EndReceive(IAsyncResult, SocketError)

保留中の非同期読み取りを終了します。

EndReceive(IAsyncResult)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

保留中の非同期読み取りを終了します。

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive (IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer

パラメーター

asyncResult
IAsyncResult

この非同期操作の状態情報およびユーザー定義データを格納する IAsyncResult

戻り値

受信されたバイト数。

例外

asyncResultnullです。

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

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

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

- または -

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

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

注釈

重要

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

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

メソッドは EndReceive 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceive 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceive パラメーターBeginReceivesize指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceive0 バイトが返Shutdownされます。

注意

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

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。

Note

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

こちらもご覧ください

適用対象

EndReceive(IAsyncResult, SocketError)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

保留中の非同期読み取りを終了します。

public:
 int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

パラメーター

asyncResult
IAsyncResult

この非同期操作の状態情報およびユーザー定義データを格納する IAsyncResult

errorCode
SocketError

ソケット エラーを格納する SocketError オブジェクト。

戻り値

受信されたバイト数。

例外

asyncResultnullです。

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

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

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

- または -

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

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

注釈

重要

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

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

メソッドは EndReceive 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceive 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceive パラメーターBeginReceivesize指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceive0 バイトが返Shutdownされます。

注意

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

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。

Note

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

こちらもご覧ください

適用対象