Aracılığıyla paylaş


TransmitFileOptions Sabit listesi

Tanım

Numaralandırma, TransmitFileOptions 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

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 aktarıldıktan 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 aktarıldıktan sonra yuvayı bağlantısı kesilmiş, yeniden kullanılabilir duruma döndürür.

UseDefaultWorkerThread 0

Uzun dosya aktarım isteklerini işlemek için varsayılan iş parçacığı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.

UseSystemThread 16

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

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 kabul edilmeleri gerekmez. Bu bayrağı ve ReuseSocket bayraklarıyla Disconnect kullanmayın.

Örnekler

Aşağıdaki örnekte çağrısında Socket.SendFilekullanımı TransmitFileOptions gösterilmektedir. "test.txt" dosyası yerel makinenin kök dizininde bulunur. Bu örnekte, bir ön yükleme ve veri 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 = gcnew IPEndPoint( ipAddr,11000 );

// Create a TCP socket.
Socket^ client = gcnew 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 );
array<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 );
array<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();
// 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

Not

Bayraklar Disconnect ve ReuseSocket dosya aktarıldıktan 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 herhangi bir hizmet kalitesini hemen silebileceğinden, bu bayraklar hizmet kalitesinin (QOS) istendiği bir yuvada kullanılmamalıdır. QOS özellikli yuva için en iyi yaklaşım, bu bayraklara güvenmek yerine dosya aktarımı tamamlandığında çağrı Socket.Close yapmaktır.

Şunlara uygulanır