Socket.EndSend メソッド (IAsyncResult)
アセンブリ: System (system.dll 内)

Dim instance As Socket Dim asyncResult As IAsyncResult Dim returnValue As Integer returnValue = instance.EndSend(asyncResult)
戻り値
正常に終了した場合は Socket に送信したバイト数。それ以外の場合は無効な Socket エラー。


EndSend は、BeginSend で開始された非同期送信操作を完了します。
BeginSend を呼び出す前に、AsyncCallback デリゲートを実装するコールバック メソッドを作成する必要があります。このコールバック メソッドは個別のスレッドで実行され、BeginSend の終了時に呼び出されます。コールバック メソッドは、BeginSend メソッドからパラメータとして返された IAsyncResult を受け取る必要があります。
コールバック メソッド内では、IAsyncResult パラメータの AsyncState メソッドを呼び出して送信 Socket を取得します。Socket を取得したら、EndSend メソッドを呼び出して送信操作を正常に完了し、送信されたバイト数を返すことができます。
コネクションレスのプロトコルを使用している場合、EndSend はデータグラムが送信されるまでブロックします。コネクション指向のプロトコルを使用している場合、EndSend は、バッファの一部が送信されるまでブロックします。EndSend からの戻り値がバッファの送信が完了していないことを示している場合は、バッファを変更して未送信データを保持し、BeginSend メソッドを再度呼び出します。
送信したデータがすぐにネットワーク上に現れることは保証されません。ネットワークの効率を高めるため、基になっているシステムは、十分な量の送信データが収集されるまで送信を遅延することがあります。BeginSend メソッドが正常に完了した場合は、基になるシステムにネットワーク送信のためにデータをバッファする余地があったことを示します。
![]() |
---|
SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。 |

Public Shared Sub Send_Callback(ar As IAsyncResult) Dim so As StateObject = CType(ar.AsyncState, StateObject) Dim s As Socket = so.workSocket Dim send As Integer = s.EndSend(ar) Console.WriteLine(("The size of the message sent was :" + send.ToString())) s.Close() End Sub 'Send_Callback
StateObject so = (StateObject) ar.AsyncState; Socket s = so.workSocket; int send = s.EndSend(ar); Console.WriteLine("The size of the message sent was :" + send.ToString()); s.Close();

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Socket.EndSend メソッド (IAsyncResult, SocketError)
アセンブリ: System (system.dll 内)

Public Function EndSend ( _ asyncResult As IAsyncResult, _ <OutAttribute> ByRef errorCode As SocketError _ ) As Integer
Dim instance As Socket Dim asyncResult As IAsyncResult Dim errorCode As SocketError Dim returnValue As Integer returnValue = instance.EndSend(asyncResult, errorCode)
public int EndSend ( IAsyncResult asyncResult, /** @attribute OutAttribute() */ /** @ref */ SocketError errorCode )
戻り値
正常に終了した場合は Socket に送信したバイト数。それ以外の場合は無効な Socket エラー。


EndSend は、BeginSend で開始された非同期送信操作を完了します。
BeginSend を呼び出す前に、AsyncCallback デリゲートを実装するコールバック メソッドを作成する必要があります。このコールバック メソッドは個別のスレッドで実行され、BeginSend の終了時に呼び出されます。コールバック メソッドは、BeginSend メソッドからパラメータとして返された IAsyncResult を受け取る必要があります。
コールバック メソッド内では、IAsyncResult パラメータの AsyncState メソッドを呼び出して送信 Socket を取得します。Socket を取得したら、EndSend メソッドを呼び出して送信操作を正常に完了し、送信されたバイト数を返すことができます。
コネクションレスのプロトコルを使用している場合、EndSend はデータグラムが送信されるまでブロックします。コネクション指向のプロトコルを使用している場合、EndSend は、バッファの一部が送信されるまでブロックします。EndSend からの戻り値がバッファの送信が完了していないことを示している場合は、バッファを変更して未送信データを保持し、BeginSend メソッドを再度呼び出します。
送信したデータがすぐにネットワーク上に現れることは保証されません。ネットワークの効率を高めるため、基になっているシステムは、十分な量の送信データが収集されるまで送信を遅延することがあります。BeginSend メソッドが正常に完了した場合は、基になるシステムにネットワーク送信のためにデータをバッファする余地があったことを示します。
![]() |
---|
SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。 |

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Socket.EndSend メソッド
- Socket.EndSendのページへのリンク