Socket.EndSend メソッド

定義

保留中の非同期送信を終了します。

オーバーロード

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 エラー。

例外

asyncResultnullです。

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

EndSend(IAsyncResult) が、非同期送信のために以前に呼び出されています。

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

- または -

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

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

注釈

重要

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

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

コネクションレス プロトコル EndSend を使用している場合、 は、データグラムが送信されるまでブロックします。 接続指向プロトコルを使用している場合、 は、 EndSend バッファーの一部が送信されるまでブロックします。 の EndSend 戻り値がバッファーが完全に送信されなかったことを示している場合は、メソッドをもう BeginSend 一度呼び出して、未送信データを保持するようにバッファーを変更します。

送信したデータがネットワークにすぐに表示される保証はありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる場合があります。 メソッドが正常に BeginSend 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。

Note

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

Note

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

Note

送信が正常に完了しても、データが正常に配信されたことは示されません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに設定されていない限り、send はブロックします。

Note

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

こちらもご覧ください

適用対象

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 エラー。

例外

asyncResultnullです。

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

EndSend(IAsyncResult) が、非同期送信のために以前に呼び出されています。

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

- または -

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

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

注釈

重要

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

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

コネクションレス プロトコル EndSend を使用している場合、 は、データグラムが送信されるまでブロックします。 接続指向プロトコルを使用している場合、 は、 EndSend バッファーの一部が送信されるまでブロックします。 の EndSend 戻り値がバッファーが完全に送信されなかったことを示している場合は、メソッドをもう BeginSend 一度呼び出して、未送信データを保持するようにバッファーを変更します。

送信したデータがネットワークにすぐに表示される保証はありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる場合があります。 メソッドが正常に BeginSend 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。

Note

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

Note

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

Note

送信が正常に完了しても、データが正常に配信されたことは示されません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに設定されていない限り、send はブロックします。

Note

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

こちらもご覧ください

適用対象