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

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Socket.EndSendFile メソッドの意味・解説 

Socket.EndSendFile メソッド

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

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

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

Public Sub EndSendFile ( _
    asyncResult As IAsyncResult _
)
Dim instance As Socket
Dim asyncResult As IAsyncResult

instance.EndSendFile(asyncResult)
public void EndSendFile (
    IAsyncResult asyncResult
)
public:
void EndSendFile (
    IAsyncResult^ asyncResult
)
public void EndSendFile (
    IAsyncResult asyncResult
)
public function EndSendFile (
    asyncResult : IAsyncResult
)

パラメータ

asyncResult

この非同期操作のステータス情報を格納する IAsyncResult オブジェクト。

例外例外
例外の種類条件

NotSupportedException

このメソッドには Windows NT が必要です。

ObjectDisposedException

Socket オブジェクトは閉じられています。

ArgumentNullException

asyncResult が空です。

ArgumentException

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

InvalidOperationException

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

SocketException

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

解説解説

EndSendFile は、BeginSendFile で開始された非同期送信操作を完了します。

BeginSendFile を呼び出す前に、AsyncCallback デリゲートを実装するコールバック メソッドを作成する必要があります。このコールバック メソッドは個別のスレッドで実行され、BeginSendFile の終了時に呼び出されます。コールバック メソッドは、BeginSendFile メソッドからパラメータとして返された IAsyncResult オブジェクトを受け取る必要があります。

コールバック メソッド内では、IAsyncResult パラメータの AsyncState メソッドを呼び出して送信 Socket を取得します。Socket を取得したら、EndSendFile メソッドを呼び出して送信操作を正常に完了できます。

コネクションレスのプロトコルを使用している場合、EndSendFile は、データグラムが送信されるまでブロックします。コネクション指向のプロトコルを使用している場合、EndSendFile は、ファイル全体が送信されるまでブロックします。送信したデータがすぐにネットワーク上に現れることは保証されません。ネットワークの効率を高めるため、基になっているシステムは、十分な量の送信データが収集されるまで送信を遅延することがあります。BeginSendFile メソッドが正常に完了した場合は、基になるシステムにネットワーク送信のためにデータをバッファする余地があったことを示します。

メモメモ

SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

使用例使用例

非同期通信のソケットを作成して接続し、リモート ホストにファイル "text.txt" の非同期的な送信を開始するコード例を次に示します。コールバック デリゲートが EndSendFile を呼び出し、伝送を完了します。

public static void AsynchronousFileSend()
{
    // Send a file to a remote device.
    
    // Establish the remote endpoint for the socket.
    IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
    IPAddress ipAddress = ipHostInfo.AddressList[0];
    IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000);

    // Create a TCP/IP socket.
    Socket client = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream, ProtocolType.Tcp);

    // Connect to the remote endpoint.
    client.BeginConnect(remoteEP, 
        new AsyncCallback(ConnectCallback), client);
        
    // Wait for connect.
    connectDone.WaitOne();

    // There is a text file test.txt in the root directory.
    string fileName = "C:\\test.txt";
  
    // Send file fileName to the remote device.
    Console.WriteLine(fileName);
    client.BeginSendFile(fileName, new AsyncCallback(FileSendCallback),
 client);

    // Release the socket.
    client.Shutdown(SocketShutdown.Both);
    client.Close();
}


private static void FileSendCallback(IAsyncResult
 ar)
{
    // Retrieve the socket from the state object.
    Socket client = (Socket) ar.AsyncState;

    // Complete sending the data to the remote device.
    client.EndSendFile(ar);
    sendDone.Set();
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

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

   

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



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

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

©2026 GRAS Group, Inc.RSS