TransmitFileOptions 列挙体
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
名前空間: System.Net.Socketsアセンブリ: System (system.dll 内)

<FlagsAttribute> _ Public Enumeration TransmitFileOptions

メンバ名 | 説明 | |
---|---|---|
Disconnect | すべてのファイル データが伝送キューに置かれた後で、トランスポート レベルの接続解除を開始します。ReuseSocket で使用する場合、これらのフラグは、ファイルの送信後に、ソケットを接続解除された再利用可能な状態に戻します。 | |
ReuseSocket | 要求が完了すると、ソケット ハンドルは再利用できます。このフラグは、同時に Disconnect も指定されている場合にだけ有効です。Disconnect で使用する場合、これらのフラグは、ファイルの送信後に、ソケットを接続解除された再利用可能な状態に戻します。 | |
UseDefaultWorkerThread | 既定スレッドを使用して長いファイルの転送要求を処理します。 | |
UseKernelApc | 長いファイルの転送要求を処理するには、ワーカー スレッドの代わりに、カーネルの非同期プロシージャ呼び出し (APC: asynchronous procedure call) を使用します。長い要求は、ファイルやキャッシュから複数回読み取りを行う必要がある要求として定義されます。したがって、この要求はファイルのサイズや送信パケットに指定した長さに依存します。 | |
UseSystemThread | システム スレッドを使用して長いファイルの転送要求を処理します。 | |
WriteBehind | ファイル転送要求を、保留せず、すぐに完了させます。このフラグが指定されていてファイル転送も成功した場合、データはシステムによって受け入れられますが、リモート エンドによって応答されるとは限りません。このフラグを、Disconnect フラグおよび ReuseSocket フラグと共に使用しないでください。 |

メモ フラグ Disconnect および ReuseSocket は、ファイルの送信後に、ソケットを接続解除された再利用可能な状態に戻します。これらのフラグは、QOS (quality of service) を要求されているソケットでは使用しないでください。サービス プロバイダはファイルの転送が完了する前に、ソケットに関連付けられている QOS をすぐに削除する可能性があるからです。QOS を備えたソケットを実現する最良の方法は、これらのフラグに依存せずに、ファイル転送が完了したときに Close を呼び出すことです。

SendFile の呼び出し時で TransmitFileOptions を使用する方法を次のコード例に示します。ファイル "test.txt" は、ローカル コンピュータのルート ディレクトリにあります。この例では、事前バッファリングと事後バッファリングのデータが作成され、ファイルと共にリモート ホストに送信されます。システムの既定スレッドを使用するために、UseDefaultWorkerThread が指定されます。
// Establish the local endpoint for the socket. IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000); // Create a TCP socket. Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Connect the socket to the remote endpoint. client.Connect(ipEndPoint); // Send file fileName to the remote host with preBuffer and postBuffer data. // There is a text file test.txt located in the root directory. string fileName = "C:\\test.txt"; // Create the preBuffer data. string string1 = String.Format("This is text data that precedes the file.{0}", Environment.NewLine); byte[] preBuf = Encoding.ASCII.GetBytes(string1); // Create the postBuffer data. string string2 = String.Format("This is text data that will follow the file.{0}", Environment.NewLine); byte[] postBuf = Encoding.ASCII.GetBytes(string2); //Send file fileName with buffers and default flags to the remote device. Console.WriteLine("Sending {0} with buffers to the host.{1}", fileName, Environment.NewLine); client.SendFile(fileName, preBuf, postBuf, TransmitFileOptions.UseDefaultWorkerThread); // Release the socket. client.Shutdown(SocketShutdown.Both); client.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に収録されているすべての辞書からTransmitFileOptions 列挙体を検索する場合は、下記のリンクをクリックしてください。

- TransmitFileOptions 列挙体のページへのリンク