Socket.BeginSendFile Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengirim file secara asinkron ke objek yang tersambung Socket .
Overload
BeginSendFile(String, AsyncCallback, Object) |
Mengirim file |
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Mengirim file dan buffer data secara asinkron ke objek yang tersambung Socket . |
BeginSendFile(String, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim file fileName
ke objek yang tersambung Socket menggunakan UseDefaultWorkerThread bendera .
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
Parameter
- fileName
- String
String yang berisi jalur dan nama file yang akan dikirim. Parameter ini dapat berupa null
.
- callback
- AsyncCallback
Delegasi AsyncCallback .
- state
- Object
Objek yang berisi informasi status untuk permintaan ini.
Mengembalikan
Objek IAsyncResult yang mewakili pengiriman asinkron.
Pengecualian
Objek Socket telah ditutup.
Soket tidak terhubung ke host jarak jauh.
File fileName
tidak ditemukan.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
Keterangan
Penting
Ini adalah API kompatibilitas. Kami tidak merekomendasikan penggunaan metode APM (Begin*
dan End*
) untuk pengembangan baru. Sebagai gantinya Task
, gunakan setara berbasis.
Kelebihan beban ini mengirimkan file fileName
melalui soket. Jika fileName
berada di direktori lokal, itu dapat diidentifikasi hanya dengan nama file; jika tidak, jalur lengkap dan nama file harus ditentukan. Kartubebas (".. nama berbagi \\myfile.txt") dan UNC ("\\\shared directory\\myfile.txt") didukung. Jika file tidak ditemukan, pengecualian FileNotFoundException akan dilemparkan.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSendFile mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSendFile. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSendFile metode .
Operasi BeginSendFile harus diselesaikan dengan memanggil EndSendFile metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndSendFile akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSendFile juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Dengan protokol tanpa koneksi, Anda harus yakin bahwa ukuran file Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak dikirim dan BeginSendFile memberikan SocketException pengecualian.
Catatan
Jika Anda menerima SocketException pengecualian, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.
Berlaku untuk
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim file dan buffer data secara asinkron ke objek yang tersambung Socket .
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
Parameter
- fileName
- String
String yang berisi jalur dan nama file yang akan dikirim. Parameter ini dapat berupa null
.
- preBuffer
- Byte[]
Data yang akan dikirim sebelum file dikirim. Parameter ini dapat berupa null
.
- postBuffer
- Byte[]
Data yang akan dikirim setelah file dikirim. Parameter ini dapat berupa null
.
- flags
- TransmitFileOptions
Kombinasi bitwise dari nilai enumerasi.
- callback
- AsyncCallback
Delegasi AsyncCallback yang akan dipanggil ketika operasi ini selesai. Parameter ini dapat berupa null
.
- state
- Object
Objek yang ditentukan pengguna yang berisi informasi status untuk permintaan ini. Parameter ini dapat berupa null
.
Mengembalikan
Objek IAsyncResult yang mewakili operasi asinkron.
Pengecualian
Objek Socket telah ditutup.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
Sistem operasi bukan Windows NT atau yang lebih baru.
-atau-
Soket tidak terhubung ke host jarak jauh.
File fileName
tidak ditemukan.
Keterangan
Penting
Ini adalah API kompatibilitas. Kami tidak merekomendasikan penggunaan metode APM (Begin*
dan End*
) untuk pengembangan baru. Sebagai gantinya Task
, gunakan setara berbasis.
Kelebihan beban ini memerlukan nama file yang ingin Anda kirim dan kombinasi TransmitFileOptions nilai bitwise. Parameter preBuffer
berisi data apa pun yang ingin Anda awali file.
postBuffer
berisi data yang ingin Anda ikuti filenya. Jika fileName
berada di direktori lokal, itu dapat diidentifikasi hanya dengan nama file; jika tidak, jalur lengkap dan nama file harus ditentukan. Kartubebas (".. nama berbagi \\myfile.txt") dan UNC ("\\\shared directory\\myfile.txt") didukung. Jika file tidak ditemukan, pengecualian FileNotFoundException akan dilemparkan.
Parameter flags
menyediakan informasi tambahan tentang transfer file. Untuk informasi selengkapnya tentang cara menggunakan parameter ini, lihat TransmitFileOptions.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSendFile mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSendFile. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSendFile metode .
Operasi BeginSendFile harus diselesaikan dengan memanggil EndSendFile metode . Biasanya, metode ini dipanggil oleh delegasi yang disediakan AsyncCallback . EndSendFile akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSendFile juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Dengan protokol tanpa koneksi, Anda harus yakin bahwa ukuran file Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak dikirim dan BeginSendFile memberikan SocketException pengecualian.
Catatan
Jika Anda menerima SocketException pengecualian, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.