Condividi tramite


Socket.BeginSendFile Metodo

Definizione

Invia un file in modo asincrono a un oggetto Socket connesso.

Overload

BeginSendFile(String, AsyncCallback, Object)

Invia il file fileName a un oggetto connesso Socket utilizzando il flag UseDefaultWorkerThread.

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

Invia un file e buffer di dati in modo asincrono a un oggetto Socket connesso.

BeginSendFile(String, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Invia il file fileName a un oggetto connesso Socket utilizzando il flag UseDefaultWorkerThread.

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 contenente 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.

Il parametro fileName del file non è stato trovato.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione Osservazioni riportata di seguito.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per il nuovo sviluppo. Usare invece gli Taskequivalenti basati su base.

Questo overload invia il file fileName sul socket. Se si trova nella directory locale, può essere identificato con solo il nome del file. In fileName 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à sul restituito verrà impostata IAsyncResult su per true indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto state 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, funziona anche per i protocolli senza connessione, BeginSendFile purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Con protocolli senza connessione, è necessario assicurarsi che le dimensioni del file non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non viene inviato e BeginSendFile genera un'eccezione SocketException .

Nota

Se si riceve un'eccezione SocketException , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un particolare contesto (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

Invia un file e buffer di dati in modo asincrono a un oggetto Socket connesso.

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 dell'enumerazione.

callback
AsyncCallback

Delegato di AsyncCallback da chiamare al completamento dell'operazione. Questo parametro può essere null.

state
Object

Oggetto definito dall'utente contenente le informazioni di stato per la 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 riportata di seguito.

Il sistema operativo non è Windows NT o versioni successive.

-oppure-

Il socket non è connesso a un host remoto.

Il parametro fileName del file non è stato trovato.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per il nuovo sviluppo. Usare invece gli Taskequivalenti basati su base.

Questo overload richiede il nome del file che si vuole inviare e una combinazione bit per bit di TransmitFileOptions valori. Il preBuffer parametro contiene tutti i dati che si desidera precedere il file. postBuffer contiene i dati che si desidera seguire il file. Se si trova nella directory locale, può essere identificato con solo il nome del file. In fileName 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 del 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à sul restituito verrà impostata IAsyncResult su per true indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto state 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, funziona anche per i protocolli senza connessione, BeginSendFile purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Con protocolli senza connessione, è necessario assicurarsi che le dimensioni del file non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non viene inviato e BeginSendFile genera un'eccezione SocketException .

Nota

Se si riceve un'eccezione SocketException , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un particolare contesto (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