Language

Socket.EndSend メソッド

定義

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

オーバーロード

名前 説明
EndSend(IAsyncResult)

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

EndSend(IAsyncResult, SocketError)

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

EndSend(IAsyncResult)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
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です。

asyncResult は、 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドの呼び出しによって返されませんでした。

EndSend(IAsyncResult) は、以前に非同期送信に対して呼び出されました。

ソケットにアクセスしようとしたときにエラーが発生しました。

-又は-

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

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

注釈

Important

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

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

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

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

Note

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

Note

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

Note

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

Note

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

こちらもご覧ください

適用対象

EndSend(IAsyncResult, SocketError)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
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です。

asyncResult は、 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドの呼び出しによって返されませんでした。

EndSend(IAsyncResult) は、以前に非同期送信に対して呼び出されました。

ソケットにアクセスしようとしたときにエラーが発生しました。

-又は-

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

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

注釈

Important

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

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

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

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

Note

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

Note

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

Note

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

Note

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

こちらもご覧ください

適用対象