次の方法で共有


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 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。

注意

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

注意

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

注意

送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、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 完了すると、基になるシステムにネットワーク送信用のデータをバッファーする領域があることを意味します。

注意

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

注意

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

注意

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

Note

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

こちらもご覧ください

適用対象