TransmitFileOptions Sabit listesi

Tanım

TransmitFileOptions numaralandırması, dosya aktarım isteklerinde kullanılan değerleri tanımlar.

Bu sabit listesi, üyeleri için bit düzeyinde karşılaştırmayı destekler.

public enum class TransmitFileOptions
[System.Flags]
public enum TransmitFileOptions
[<System.Flags>]
type TransmitFileOptions = 
Public Enum TransmitFileOptions
Devralma
TransmitFileOptions
Öznitelikler

Alanlar

Name Değer Description
UseDefaultWorkerThread 0

Uzun dosya aktarım isteklerini işlemek için varsayılan iş parçacığını kullanın.

Disconnect 1

Tüm dosya verileri iletim için kuyruğa alındıktan sonra aktarım düzeyi bağlantısını kesme işlemini başlatın. ile ReuseSocketkullanıldığında, bu bayraklar dosya iletildikten sonra yuvayı bağlantısı kesilmiş, yeniden kullanılabilir duruma döndürür.

ReuseSocket 2

İstek tamamlandığında yuva tutamacı yeniden kullanılabilir. Bu bayrak yalnızca aynı zamanda belirtilmişse Disconnect geçerlidir. ile Disconnectkullanıldığında, bu bayraklar dosya iletildikten sonra yuvayı bağlantısı kesilmiş, yeniden kullanılabilir duruma döndürür.

WriteBehind 4

Bekleyen olmadan dosya aktarım isteğini hemen tamamlayın. Bu bayrak belirtilirse ve dosya aktarımı başarılı olursa, veriler sistem tarafından kabul edilir, ancak uzak uç tarafından onaylanmayabilir. Bu bayrağı ve Disconnect bayraklarıyla ReuseSocket kullanmayın.

UseSystemThread 16

Uzun dosya aktarım isteklerini işlemek için sistem iş parçacıklarını kullanın.

UseKernelApc 32

Uzun dosya aktarım isteklerini işlemek için çalışan iş parçacıkları yerine çekirdek zaman uyumsuz yordam çağrılarını (APC) kullanın. Uzun istekler, dosyadan veya önbellekten tek bir okumadan fazlasını gerektiren istekler olarak tanımlanır; bu nedenle istek, dosyanın boyutuna ve gönderme paketinin belirtilen uzunluğuna bağlıdır.

Örnekler

Aşağıdaki örnekte çağrısında TransmitFileOptionskullanımı Socket.SendFile gösterilmektedir. "test.txt" dosyası yerel makinenin kök dizininde bulunur. Bu örnekte, verilerin ön kasası ve postbuffer'ı oluşturulur ve dosyayla uzak ana bilgisayara gönderilir. Sistemin varsayılan iş parçacığını UseDefaultWorkerThread kullanmak için belirtilir.

// 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();

Açıklamalar

Note

Bayraklar Disconnect ve ReuseSocket dosya iletildikten sonra yuvayı bağlantısı kesilmiş, yeniden kullanılabilir duruma döndürür. Hizmet sağlayıcısı, dosya aktarımı tamamlanmadan önce yuvayla ilişkili tüm hizmet kalitelerini hemen silebileceğinden, bu bayraklar hizmet kalitesinin (QOS) istendiği bir yuvada kullanılmamalıdır. QOS özellikli bir yuva için en iyi yaklaşım, bu bayraklara güvenmek yerine dosya aktarımı tamamlandığında çağırmaktır Socket.Close .

Şunlara uygulanır