TransmitFileOptions Enum

Definition

Uppräkningen TransmitFileOptions definierar värden som används i filöverföringsbegäranden.

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

public enum class TransmitFileOptions
[System.Flags]
public enum TransmitFileOptions
[<System.Flags>]
type TransmitFileOptions = 
Public Enum TransmitFileOptions
Arv
TransmitFileOptions
Attribut

Fält

Name Värde Description
UseDefaultWorkerThread 0

Använd standardtråden för att bearbeta långa filöverföringsbegäranden.

Disconnect 1

Starta en frånkoppling på transportnivå när alla fildata har placerats i kö för överföring. När de används med ReuseSocketreturnerar dessa flaggor socketen till ett frånkopplat, återanvändbart tillstånd efter att filen har överförts.

ReuseSocket 2

Socket-handtaget kan återanvändas när begäran har slutförts. Den här flaggan är endast giltig om Disconnect den också har angetts. När de används med Disconnectreturnerar dessa flaggor socketen till ett frånkopplat, återanvändbart tillstånd efter att filen har överförts.

WriteBehind 4

Slutför filöverföringsbegäran omedelbart, utan att vänta. Om den här flaggan anges och filöverföringen lyckas har data godkänts av systemet men inte nödvändigtvis bekräftats av fjärrslutet. Använd inte den här flaggan med flaggorna Disconnect och ReuseSocket .

UseSystemThread 16

Använd systemtrådar för att bearbeta långa filöverföringsbegäranden.

UseKernelApc 32

Använd kernel-asynkrona proceduranrop (API:er) i stället för arbetstrådar för att bearbeta långa filöverföringsbegäranden. Långa begäranden definieras som begäranden som kräver mer än en enda läsning från filen eller en cache. begäran beror därför på filens storlek och den angivna längden på sändningspaketet.

Exempel

I följande exempel visas användningen av TransmitFileOptions i ett anrop till Socket.SendFile. Filen "test.txt" finns i rotkatalogen på den lokala datorn. I det här exemplet skapas och skickas en prebuffer och postbuffer med data till fjärrvärden med filen. Om du vill använda systemets standardtråd UseDefaultWorkerThread anges.

// Establish the local endpoint for the socket.
IPHostEntry ipHost = Dns.GetHostEntry(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();

Kommentarer

Note

Flaggorna Disconnect och ReuseSocket returnerar socketen till ett frånkopplat, återanvändbart tillstånd efter att filen har överförts. Dessa flaggor bör inte användas på en socket där tjänstkvalitet (QOS) har begärts, eftersom tjänstleverantören omedelbart kan ta bort den tjänstkvalitet som är associerad med socketen innan filöverföringen har slutförts. Den bästa metoden för en QOS-aktiverad socket är att anropa Socket.Close när filöverföringen har slutförts, i stället för att förlita sig på dessa flaggor.

Gäller för