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

asyncResultnull 参照 (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

asyncResultnull 参照 (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



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

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

   

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



Socket.EndSend メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS