Socket.BeginSendFile Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ı |
| 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.