Aracılığıyla paylaş


Socket.BeginSendFile Yöntem

Tanım

Bağlı Socket bir nesneye zaman uyumsuz olarak bir dosya gönderir.

Aşırı Yüklemeler

Name Description
BeginSendFile(String, AsyncCallback, Object)

bayrağını kullanarak dosyayı fileName bağlı Socket bir nesneye UseDefaultWorkerThread gönderir.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Bağlı Socket bir nesneye zaman uyumsuz olarak bir dosya ve veri arabellekleri gönderir.

BeginSendFile(String, AsyncCallback, Object)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

bayrağını kullanarak dosyayı fileName bağlı Socket bir nesneye UseDefaultWorkerThread gönderir.

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, AsyncCallback callback, object state);
member this.BeginSendFile : string * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

fileName
String

Gönderilecek dosyanın yolunu ve adını içeren dize. Bu parametre olabilir null.

callback
AsyncCallback

Temsilci AsyncCallback .

state
Object

Bu istek için durum bilgilerini içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz göndermeyi temsil eden bir nesne.

Özel durumlar

Socket Nesne kapatıldı.

Yuva uzak bir ana bilgisayara bağlı değil.

Dosya fileName bulunamadı.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerinin kullanılmasını önermiyoruz. Bunun yerine, tabanlı eşdeğerleri kullanın Task.

Bu aşırı yükleme, dosyayı fileName yuva üzerinden gönderir. Yerel dizindeyse fileName , yalnızca dosyanın adıyla tanımlanabilir; aksi takdirde, dosyanın tam yolu ve adı belirtilmelidir. Joker karakterler ("... \\myfile.txt") ve UNC paylaşım adları ("\\\\shared directory\\myfile.txt") desteklenir. Dosya bulunamazsa, özel durum FileNotFoundException oluşturulur.

İşlemin AsyncCallbackBeginSendFile tamamlanması hakkında bildirim almak için uygulamasına bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendFilesatır içinde yürütüleceğini unutmayın. Bu durumda, CompletedSynchronously döndürülen IAsyncResult üzerindeki özelliği, yöntemin zaman uyumlu olarak tamamlandığını belirtmek için true olarak ayarlanır. yöntemine AsyncStateIAsyncResult geçirilen durum nesnesini almak için BeginSendFile özelliğini kullanın.

İşlemin BeginSendFile yöntemi çağrılarak EndSendFile tamamlanması gerekir. Genellikle yöntemi temsilci tarafından çağrılır AsyncCallback . EndSendFile işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSendFile ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan uzak konağı kurmanız koşuluyla, bağlantısız protokoller için de çalışır. Bağlantısız protokollerle, dosyanızın boyutunun temel hizmet sağlayıcısının en büyük paket boyutunu aşmadığından emin olmanız gerekir. Gönderiliyorsa, veri birimi gönderilmez ve BeginSendFile bir SocketException özel durum oluşturur.

Uyarı

Özel durum alırsanız, belirli bir SocketException hata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Uyarı

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağrı bağlamı) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları performans artışıyla karşılaşır.

Şunlara uygulanır

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Bağlı Socket bir nesneye zaman uyumsuz olarak bir dosya ve veri arabellekleri gönderir.

public:
 IAsyncResult ^ BeginSendFile(System::String ^ fileName, cli::array <System::Byte> ^ preBuffer, cli::array <System::Byte> ^ postBuffer, System::Net::Sockets::TransmitFileOptions flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSendFile(string? fileName, byte[]? preBuffer, byte[]? postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback callback, object state);
member this.BeginSendFile : string * byte[] * byte[] * System.Net.Sockets.TransmitFileOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginSendFile (fileName As String, preBuffer As Byte(), postBuffer As Byte(), flags As TransmitFileOptions, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

fileName
String

Gönderilecek dosyanın yolunu ve adını içeren dize. Bu parametre olabilir null.

preBuffer
Byte[]

Dosya gönderilmeden önce gönderilecek veriler. Bu parametre olabilir null.

postBuffer
Byte[]

Dosya gönderildikten sonra gönderilecek veriler. Bu parametre olabilir null.

flags
TransmitFileOptions

Sabit listesi değerlerinin bit düzeyinde birleşimi.

callback
AsyncCallback

AsyncCallback Bu işlem tamamlandığında çağrılacak bir temsilci. Bu parametre olabilir null.

state
Object

Bu istek için durum bilgilerini içeren kullanıcı tanımlı bir nesne. Bu parametre olabilir null.

Döndürülenler

IAsyncResult Zaman uyumsuz işlemi temsil eden bir nesne.

Özel durumlar

Socket Nesne kapatıldı.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

İşletim sistemi Windows NT veya üzeri değildir.

-veya-

Yuva uzak bir ana bilgisayara bağlı değil.

Dosya fileName bulunamadı.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerinin kullanılmasını önermiyoruz. Bunun yerine, tabanlı eşdeğerleri kullanın Task.

Bu aşırı yükleme, göndermek istediğiniz dosyanın adını ve değerlerin bit düzeyinde bir bileşimini TransmitFileOptions gerektirir. parametresi, preBuffer dosyadan önce getirmek istediğiniz tüm verileri içerir. postBuffer , dosyayı takip etmek istediğiniz verileri içerir. Yerel dizindeyse fileName , yalnızca dosyanın adıyla tanımlanabilir; aksi takdirde, dosyanın tam yolu ve adı belirtilmelidir. Joker karakterler ("... \\myfile.txt") ve UNC paylaşım adları ("\\\\shared directory\\myfile.txt") desteklenir. Dosya bulunamazsa, özel durum FileNotFoundException oluşturulur.

flags parametresi, dosya aktarımı hakkında ek bilgi sağlar. Bu parametreyi kullanma hakkında daha fazla bilgi için bkz TransmitFileOptions. .

İşlemin AsyncCallbackBeginSendFile tamamlanması hakkında bildirim almak için uygulamasına bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendFilesatır içinde yürütüleceğini unutmayın. Bu durumda, CompletedSynchronously döndürülen IAsyncResult üzerindeki özelliği, yöntemin zaman uyumlu olarak tamamlandığını belirtmek için true olarak ayarlanır. yöntemine AsyncStateIAsyncResult geçirilen durum nesnesini almak için BeginSendFile özelliğini kullanın.

İşlemin BeginSendFile yöntemi çağrılarak EndSendFile tamamlanması gerekir. Genellikle yöntemi, sağlanan AsyncCallback temsilci tarafından çağrılır. EndSendFile işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSendFile ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan uzak konağı kurmanız koşuluyla, bağlantısız protokoller için de çalışır. Bağlantısız protokollerle, dosyanızın boyutunun temel hizmet sağlayıcısının en büyük paket boyutunu aşmadığından emin olmanız gerekir. Gönderiliyorsa, veri birimi gönderilmez ve BeginSendFile bir SocketException özel durum oluşturur.

Uyarı

Özel durum alırsanız, belirli bir SocketException hata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Uyarı

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.

Uyarı

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağrı bağlamı) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları performans artışıyla karşılaşır.

Şunlara uygulanır