Socket.BeginSendFile Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Invia un file in modo asincrono a un oggetto connesso Socket .
Overload
| Nome | Descrizione |
|---|---|
| BeginSendFile(String, AsyncCallback, Object) |
Invia il file |
| BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object) |
Invia un file e buffer di dati in modo asincrono a un oggetto connesso Socket . |
BeginSendFile(String, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia il file fileName a un oggetto connesso Socket usando il UseDefaultWorkerThread flag .
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
Parametri
- fileName
- String
Stringa che contiene il percorso e il nome del file da inviare. Questo parametro può essere null.
- callback
- AsyncCallback
Delegato AsyncCallback .
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che rappresenta l'invio asincrono.
Eccezioni
L'oggetto Socket è stato chiuso.
Il socket non è connesso a un host remoto.
Impossibile trovare il file fileName .
Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione osservazioni di seguito.
Commenti
Importante
Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .
Questo overload invia il file fileName sul socket. Se fileName si trova nella directory locale, può essere identificato con solo il nome del file. In caso contrario, è necessario specificare il percorso completo e il nome del file. Caratteri jolly (".. \\myfile.txt") e i nomi di condivisione UNC ("\\\\\shared directory\\myfile.txt") sono supportati. Se il file non viene trovato, viene generata l'eccezione FileNotFoundException .
È possibile passare un callback che implementa AsyncCallback a BeginSendFile per ricevere una notifica sul completamento dell'operazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback verrà eseguito inline, durante la chiamata a BeginSendFile. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto di stato passato al BeginSendFile metodo .
L'operazione BeginSendFile deve essere completata chiamando il EndSendFile metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndSendFile blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, BeginSendFile funziona anche per i protocolli senza connessione, purché venga chiamato prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Con i protocolli senza connessione, è necessario assicurarsi che le dimensioni del file non superino le dimensioni massime del pacchetto del provider di servizi sottostante. In caso affermativo, il datagramma non viene inviato e BeginSendFile genera un'eccezione SocketException .
Annotazioni
Se si riceve un'eccezione SocketException , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Annotazioni
Il contesto di esecuzione ,ovvero il contesto di sicurezza, l'utente rappresentato e il contesto chiamante, viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo utilizzo di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.
Si applica a
BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia un file e buffer di dati in modo asincrono a un oggetto connesso 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
Parametri
- fileName
- String
Stringa contenente il percorso e il nome del file da inviare. Questo parametro può essere null.
- preBuffer
- Byte[]
Dati da inviare prima dell'invio del file. Questo parametro può essere null.
- postBuffer
- Byte[]
Dati da inviare dopo l'invio del file. Questo parametro può essere null.
- flags
- TransmitFileOptions
Combinazione bit per bit dei valori di enumerazione.
- callback
- AsyncCallback
Delegato AsyncCallback da richiamare al termine dell'operazione. Questo parametro può essere null.
- state
- Object
Oggetto definito dall'utente che contiene informazioni sullo stato per questa richiesta. Questo parametro può essere null.
Restituisce
Oggetto IAsyncResult che rappresenta l'operazione asincrona.
Eccezioni
L'oggetto Socket è stato chiuso.
Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione osservazioni di seguito.
Il sistema operativo non è Windows NT o versione successiva.
oppure
Il socket non è connesso a un host remoto.
Impossibile trovare il file fileName .
Commenti
Importante
Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .
Questo overload richiede il nome del file da inviare e una combinazione bit per bit di TransmitFileOptions valori. Il preBuffer parametro contiene tutti i dati che si desidera precedere dal file.
postBuffer contiene i dati che si desidera seguire il file. Se fileName si trova nella directory locale, può essere identificato con solo il nome del file. In caso contrario, è necessario specificare il percorso completo e il nome del file. Caratteri jolly (".. \\myfile.txt") e i nomi di condivisione UNC ("\\\\\shared directory\\myfile.txt") sono supportati. Se il file non viene trovato, viene generata l'eccezione FileNotFoundException .
Il flags parametro fornisce informazioni aggiuntive sul trasferimento di file. Per altre informazioni su come usare questo parametro, vedere TransmitFileOptions.
È possibile passare un callback che implementa AsyncCallback a BeginSendFile per ricevere una notifica sul completamento dell'operazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback verrà eseguito inline, durante la chiamata a BeginSendFile. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto di stato passato al BeginSendFile metodo .
L'operazione BeginSendFile deve essere completata chiamando il EndSendFile metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndSendFile blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, BeginSendFile funziona anche per i protocolli senza connessione, purché venga chiamato prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Con i protocolli senza connessione, è necessario assicurarsi che le dimensioni del file non superino le dimensioni massime del pacchetto del provider di servizi sottostante. In caso affermativo, il datagramma non viene inviato e BeginSendFile genera un'eccezione SocketException .
Annotazioni
Se si riceve un'eccezione SocketException , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Annotazioni
Il contesto di esecuzione ,ovvero il contesto di sicurezza, l'utente rappresentato e il contesto chiamante, viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo utilizzo di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.