Socket.EndReceive メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
保留中の非同期読み取りを終了します。
オーバーロード
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。
戻り値
受信されたバイト数。
例外
asyncResult
が null
です。
BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドへの呼び出しで asyncResult
が返されませんでした。
EndReceive(IAsyncResult) が、非同期の読み取りのために以前に呼び出されています。
.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
EndReceive によって BeginReceive開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginReceive 。
メソッドは EndReceive 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceive 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceive パラメーターBeginReceiveでsize
指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceive0 バイトが返Shutdownされます。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
注意
特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
適用対象
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 オブジェクト。
戻り値
受信されたバイト数。
例外
asyncResult
が null
です。
BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドへの呼び出しで asyncResult
が返されませんでした。
EndReceive(IAsyncResult) が、非同期の読み取りのために以前に呼び出されています。
.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
EndReceive によって BeginReceive開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginReceive 。
メソッドは EndReceive 、データが使用可能になるまでブロックします。 コネクションレス プロトコルを使用している場合は、 EndReceive 受信ネットワーク バッファーで使用できる最初のエンキューされたデータグラムが読み取られます。 接続指向プロトコルを使用している場合、メソッドは、 メソッドの EndReceive パラメーターBeginReceiveでsize
指定したバイト数まで使用可能なデータを読み取ります。 リモート ホストが メソッドとの接続をSocketシャットダウンし、使用可能なすべてのデータを受信した場合、メソッドはすぐに完了し、EndReceive0 バイトが返Shutdownされます。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
注意
特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
適用対象
.NET