Cette documentation est archivée et n’est pas conservée.

TransmitFileOptions, énumération

Remarque : cette énumération est nouvelle dans le .NET Framework version 2.0.

L'énumération TransmitFileOptions définit les valeurs utilisées dans les demandes de transfert de fichiers.

Cette énumération possède un attribut FlagsAttribute qui permet la combinaison d'opérations de bits de ses valeurs membres.

Espace de noms : System.Net.Sockets
Assembly : System (dans system.dll)

[FlagsAttribute] 
public enum TransmitFileOptions
/** @attribute FlagsAttribute() */ 
public enum TransmitFileOptions
FlagsAttribute 
public enum TransmitFileOptions

 Nom de membreDescription
DisconnectDémarrez une déconnexion de niveau transport lorsque toutes les données de fichiers sont mises en file d'attente en vue de leur transmission. En cas d'utilisation avec ReuseSocket, ces indicateurs rétablissent l'état déconnecté et réutilisable du socket une fois le fichier transmis. 
ReuseSocketLe handle de socket peut être réutilisé une fois la demande terminée. Cet indicateur n'est valide que si Disconnect est également spécifié. En cas d'utilisation avec Disconnect, ces indicateurs rétablissent l'état déconnecté et réutilisable du socket une fois le fichier transmis. 
UseDefaultWorkerThreadUtilisez le thread par défaut pour traiter les longues demandes de transfert de fichiers. 
UseKernelApcUtilisez des appels de procédure asynchrone du noyau plutôt que des threads de travail pour traiter les longues demandes de transfert de fichiers. Les longues demandes sont celles qui requièrent plusieurs lectures du fichier ou d'un cache. La demande dépend par conséquent de la taille du fichier et de la longueur spécifiée du paquet d'envoi. 
UseSystemThreadUtilisez des threads système pour traiter les longues demandes de transfert de fichiers. 
WriteBehindExécutez immédiatement la demande de transfert de fichiers, sans la mettre en attente. Si cet indicateur est spécifié et si le transfert de fichiers réussit, les données sont acceptées par le système, mais pas nécessairement par l'extrémité distante. N'utilisez pas cet indicateur avec les indicateurs Disconnect et ReuseSocket

Remarque   Les indicateurs Disconnect et ReuseSocket rétablissent l'état déconnecté et réutilisable du socket après la transmission du fichier. Ces indicateurs ne doivent pas être utilisés sur un socket faisant l'objet d'une demande de qualité de service (Quality of Service, QoS), car le fournisseur de services peut supprimer immédiatement toute qualité de service associée au socket avant la fin du transfert de fichiers. La meilleure approche pour un socket prenant en charge QoS consiste à appeler Close une fois le transfert de fichiers terminé, plutôt que de se baser sur ces indicateurs.

L'exemple suivant illustre l'utilisation de TransmitFileOptions dans un appel à SendFile. Le fichier "test.txt" se situe dans le répertoire racine de l'ordinateur local. Dans cet exemple, une pré-mémoire tampon et une post-mémoire tampon de données sont créées et envoyées à l'hôte distant avec le fichier. Pour utiliser le thread par défaut du système, UseDefaultWorkerThread est spécifié.

// 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 pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: