Socket.EndSend メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
保留中の非同期送信を終了します。
オーバーロード
EndSend(IAsyncResult) |
保留中の非同期送信を終了します。 |
EndSend(IAsyncResult, SocketError) |
保留中の非同期送信を終了します。 |
EndSend(IAsyncResult)
- ソース:
- Socket.cs
- ソース:
- Socket.cs
- ソース:
- Socket.cs
保留中の非同期送信を終了します。
public:
int EndSend(IAsyncResult ^ asyncResult);
public int EndSend (IAsyncResult asyncResult);
member this.EndSend : IAsyncResult -> int
Public Function EndSend (asyncResult As IAsyncResult) As Integer
パラメーター
- asyncResult
- IAsyncResult
この非同期操作の状態情報を格納する IAsyncResult。
戻り値
正常に終了した場合は Socket に送信したバイト数。それ以外の場合は無効な Socket エラー。
例外
asyncResult
が null
です。
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドへの呼び出しで asyncResult
が返されませんでした。
EndSend(IAsyncResult) が、非同期送信のために以前に呼び出されています。
.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
EndSend によって BeginSend開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginSend 。
コネクションレス プロトコルを使用している場合、 EndSend はデータグラムが送信されるまでブロックします。 接続指向プロトコルを使用している場合、 は、 EndSend バッファーの一部が送信されるまでブロックします。 の EndSend 戻り値がバッファーが完全に送信されなかったことを示す場合は、 メソッドをもう BeginSend 一度呼び出し、バッファーを変更して、未送信データを保持します。
送信したデータがネットワークにすぐに表示される保証はありません。 ネットワーク効率を高めるために、基になるシステムは大量の送信データが収集されるまで送信を遅らせる可能性があります。 メソッドが正常に BeginSend 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
注意
特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。
注意
送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、send はブロックします。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
適用対象
EndSend(IAsyncResult, SocketError)
- ソース:
- Socket.cs
- ソース:
- Socket.cs
- ソース:
- Socket.cs
保留中の非同期送信を終了します。
public:
int EndSend(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndSend (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndSend : IAsyncResult * SocketError -> int
Public Function EndSend (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer
パラメーター
- asyncResult
- IAsyncResult
この非同期操作の状態情報を格納する IAsyncResult。
- errorCode
- SocketError
ソケット エラーを格納する SocketError オブジェクト。
戻り値
正常に終了した場合は Socket に送信したバイト数。それ以外の場合は無効な Socket エラー。
例外
asyncResult
が null
です。
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドへの呼び出しで asyncResult
が返されませんでした。
EndSend(IAsyncResult) が、非同期送信のために以前に呼び出されています。
.NET Framework、.NET Core、.NET 5-6 のみ: がSocket閉じられました。
注釈
重要
これは互換性 API です。 新しい開発に APM (Begin*
および End*
) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task
同等のものを使用します。
EndSend によって BeginSend開始された操作が完了します。 一致する呼び出しによって作成された を IAsyncResult 渡す必要があります BeginSend 。
コネクションレス プロトコルを使用している場合、 EndSend はデータグラムが送信されるまでブロックします。 接続指向プロトコルを使用している場合、 は、 EndSend バッファーの一部が送信されるまでブロックします。 の EndSend 戻り値がバッファーが完全に送信されなかったことを示す場合は、 メソッドをもう BeginSend 一度呼び出し、バッファーを変更して、未送信データを保持します。
送信したデータがネットワークにすぐに表示される保証はありません。 ネットワーク効率を高めるために、基になるシステムは大量の送信データが収集されるまで送信を遅らせる可能性があります。 メソッドが正常に BeginSend 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。
注意
特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。
注意
送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、send はブロックします。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
適用対象
.NET