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

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


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

特定の位置への、保留中の非同期送信を終了するコード例を次に示します。
Dim so As StateObject = CType(ar.AsyncState, StateObject) Dim s As Socket = so.workSocket Dim send As Integer = s.EndSendTo(ar) Console.WriteLine(("The size of the message sent was :" + send.ToString())) s.Close() End Sub 'SendTo_Callback
StateObject so = (StateObject) ar.AsyncState; Socket s = so.workSocket; int send = s.EndSendTo(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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からSocket.EndSendTo メソッドを検索する場合は、下記のリンクをクリックしてください。

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