Socket.EndSendとは? わかりやすく解説

Socket.EndSend メソッド (IAsyncResult)

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

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

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

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

パラメータ

asyncResult

この非同期操作の状態情報を格納する IAsyncResult。

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

例外例外
例外の種類条件

ArgumentNullException

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

ArgumentException

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

InvalidOperationException

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

SocketException

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

ObjectDisposedException

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

int send = s->EndSend( 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.EndSend(ar);
Console.WriteLine("The size of the message sent was :"
    + ((Int32)send).ToString());
s.Close();
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
BeginSend
AsyncCallback
AsyncState
SetSocketOption
NoDelay

Socket.EndSend メソッド (IAsyncResult, SocketError)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

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

名前空間: System.Net.Sockets
アセンブリ: 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,
    out SocketError errorCode
)
public:
int EndSend (
    IAsyncResult^ asyncResult, 
    [OutAttribute] SocketError% errorCode
)
public int EndSend (
    IAsyncResult asyncResult, 
    /** @attribute OutAttribute() */ /** @ref */ SocketError errorCode
)
JScript では、値型の引数は参照渡しされません。

パラメータ

asyncResult

この非同期操作の状態情報を格納する IAsyncResult。

errorCode

ソケット エラーを格納する SocketError オブジェクト。

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

例外例外
例外の種類条件

ArgumentNullException

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

ArgumentException

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

InvalidOperationException

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

SocketException

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

ObjectDisposedException

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 ライブラリから入手できます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
BeginSend
AsyncCallback
AsyncState
SetSocketOption
NoDelay

Socket.EndSend メソッド

保留中の非同期送信を終了します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
Socket.EndSend (IAsyncResult) 保留中の非同期送信を終了します。

.NET Compact Framework によってサポートされています。

Socket.EndSend (IAsyncResult, SocketError) 保留中の非同期送信を終了します。
参照参照

関連項目

Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
BeginSend
AsyncCallback
AsyncState
SetSocketOption
NoDelay



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「Socket.EndSend」の関連用語

Socket.EndSendのお隣キーワード
検索ランキング

   

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



Socket.EndSendのページの著作権

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

©2026 GRAS Group, Inc.RSS