Socket.EndSendTo メソッドとは? わかりやすく解説

Socket.EndSendTo メソッド

特定の位置への、保留中の非同期送信を終了します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function EndSendTo ( _
    asyncResult As IAsyncResult _
) As Integer
Dim instance As Socket
Dim asyncResult As IAsyncResult
Dim returnValue As Integer

returnValue = instance.EndSendTo(asyncResult)
public int EndSendTo (
    IAsyncResult asyncResult
)
public:
int EndSendTo (
    IAsyncResult^ asyncResult
)
public int EndSendTo (
    IAsyncResult asyncResult
)
public function EndSendTo (
    asyncResult : IAsyncResult
) : int

パラメータ

asyncResult

この非同期操作の状態情報およびユーザー定義データを格納する IAsyncResult。

戻り値
正常に完了した場合は送信したバイト数。それ以外の場合は無効な Socket エラー。

例外例外
例外の種類条件

ArgumentNullException

asyncResult が null 参照 (Visual Basic では Nothing) です。

ArgumentException

BeginSendTo メソッドへの呼び出しで asyncResult が返されませんでした。

InvalidOperationException

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

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

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();
StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
Socket^ s = so->workSocket;

int send = s->EndSendTo( ar );

Console::WriteLine( "The size of the message sent was : {0}", send );

s->Close();
StateObject so = (StateObject)ar.get_AsyncState();
Socket s = so.workSocket;
int send = s.EndSendTo(ar);
Console.WriteLine("The size of the message sent was :"
    + ((Int32)send).ToString());
s.Close();
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

Socket.EndSendTo メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Socket.EndSendTo メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS