Socket.BeginSend 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 dati in modo asincrono a un Socket connesso.
Overload
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Invia dati in modo asincrono a un Socket connesso. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Invia dati in modo asincrono a un Socket connesso. |
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Invia dati in modo asincrono a un Socket connesso. |
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Invia dati in modo asincrono a un Socket connesso. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia dati in modo asincrono a un Socket connesso.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- buffers
- IList<ArraySegment<Byte>>
Matrice di tipo Byte che contiene i dati da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- callback
- AsyncCallback
Delegato AsyncCallback.
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che fa riferimento all'invio asincrono.
Eccezioni
buffers
è null
.
buffers
è vuoto.
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.
L'oggetto Socket è stato chiuso.
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 Task
equivalenti basati su base.
È possibile passare un callback che implementa AsyncCallback a BeginSend 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 BeginSend. 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 BeginSend metodo .
L'operazione asincrona BeginSend deve essere completata chiamando il EndSend metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndSend blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, funziona anche per i protocolli senza connessione, BeginSend purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Se si usa un protocollo senza connessione e si prevede di inviare dati a diversi host, è consigliabile usare BeginSendTo. È consigliabile usare BeginSendTo anche dopo aver stabilito un host remoto predefinito con Connect. È anche possibile modificare l'host remoto predefinito prima di chiamare BeginSend eseguendo un'altra chiamata a Connect o BeginConnect. Con i protocolli senza connessione, è anche necessario assicurarsi che le dimensioni del buffer non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non verrà inviato e BeginSend genererà un SocketExceptionoggetto .
Se si specifica il DontRoute flag come socketflags
parametro, i dati inviati non verranno indirizzati.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.
Nota
Tutti gli I/O avviati da un determinato thread vengono annullati quando il thread viene chiuso. Un'operazione asincrona in sospeso può non riuscire se il thread viene chiuso prima del completamento dell'operazione.
Nota
state
è un'istanza di una classe definita dall'utente.
Nota
Il completamento riuscito di un invio non indica che i dati sono stati recapitati correttamente. Se non è disponibile spazio buffer all'interno del sistema di trasporto per contenere i dati da trasmettere, l'invio bloccherà a meno che il socket non sia stato inserito in modalità non di blocco.
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.
Vedi anche
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling di un delegato come metodo di callback
- Esempio di socket client asincrono
- Esempio di socket server asincrono
Si applica a
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia dati in modo asincrono a un Socket connesso.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- buffers
- IList<ArraySegment<Byte>>
Matrice di tipo Byte che contiene i dati da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- errorCode
- SocketError
Oggetto SocketError che memorizza l'errore del socket.
- callback
- AsyncCallback
Delegato AsyncCallback.
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che fa riferimento all'invio asincrono.
Eccezioni
buffers
è null
.
buffers
è vuoto.
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.
L'oggetto Socket è stato chiuso.
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 Task
equivalenti basati su base.
È possibile passare un callback che implementa AsyncCallback a BeginSend 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 BeginSend. 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 BeginSend metodo .
L'operazione asincrona BeginSend deve essere completata chiamando il EndSend metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndSend blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, funziona anche per i protocolli senza connessione, BeginSend purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Se si usa un protocollo senza connessione e si prevede di inviare dati a diversi host, è consigliabile usare BeginSendTo. È consigliabile usare BeginSendTo anche dopo aver stabilito un host remoto predefinito con Connect. È anche possibile modificare l'host remoto predefinito prima di chiamare BeginSend eseguendo un'altra chiamata a Connect o BeginConnect. Con i protocolli senza connessione, è anche necessario assicurarsi che le dimensioni del buffer non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non verrà inviato e BeginSend genererà un SocketExceptionoggetto .
Se si specifica il DontRoute flag come socketflags
parametro, i dati inviati non verranno indirizzati.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.
Nota
Tutti gli I/O avviati da un determinato thread vengono annullati quando il thread viene chiuso. Un'operazione asincrona in sospeso può non riuscire se il thread viene chiuso prima del completamento dell'operazione.
Nota
state
è un'istanza di una classe definita dall'utente.
Nota
Il completamento riuscito di un invio non indica che i dati sono stati recapitati correttamente. Se non è disponibile spazio buffer all'interno del sistema di trasporto per contenere i dati da trasmettere, l'invio bloccherà a meno che il socket non sia stato inserito in modalità non di blocco.
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.
Vedi anche
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling di un delegato come metodo di callback
- Esempio di socket client asincrono
- Esempio di socket server asincrono
Si applica a
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia dati in modo asincrono a un Socket connesso.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- offset
- Int32
Posizione in base zero nel parametro buffer
in corrispondenza della quale iniziare a inviare dati.
- size
- Int32
Numero di byte da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- callback
- AsyncCallback
Delegato AsyncCallback.
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che fa riferimento all'invio asincrono.
Eccezioni
buffer
è null
.
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.
offset
è minore di 0.
-oppure-
offset
è minore della lunghezza di buffer
.
-oppure-
size
è minore di 0.
-oppure-
size
è maggiore della lunghezza di buffer
meno il valore del parametro offset
.
L'oggetto Socket è stato chiuso.
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 Task
equivalenti basati su base.
È possibile passare un callback che implementa AsyncCallback a BeginSend 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 BeginSend. 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 BeginSend metodo .
L'operazione asincrona BeginSend deve essere completata chiamando il EndSend metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndSend blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, funziona anche per i protocolli senza connessione, BeginSend purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Se si usa un protocollo senza connessione e si prevede di inviare dati a diversi host, è consigliabile usare BeginSendTo. È consigliabile usare BeginSendTo anche dopo aver stabilito un host remoto predefinito con Connect. È anche possibile modificare l'host remoto predefinito prima di chiamare BeginSend eseguendo un'altra chiamata a Connect o BeginConnect. Con i protocolli senza connessione, è anche necessario assicurarsi che le dimensioni del buffer non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non verrà inviato e BeginSend genererà un SocketExceptionoggetto .
Se si specifica il DontRoute flag come socketflags
parametro, i dati inviati non verranno indirizzati.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.
Nota
Tutti gli I/O avviati da un determinato thread vengono annullati quando il thread viene chiuso. Un'operazione asincrona in sospeso può non riuscire se il thread viene chiuso prima del completamento dell'operazione.
Nota
state
è un'istanza di una classe definita dall'utente.
Nota
Il completamento riuscito di un invio non indica che i dati sono stati recapitati correttamente. Se non è disponibile spazio buffer all'interno del sistema di trasporto per contenere i dati da trasmettere, l'invio bloccherà a meno che il socket non sia stato inserito in modalità non di blocco.
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.
Vedi anche
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling di un delegato come metodo di callback
- Esempio di socket client asincrono
- Esempio di socket server asincrono
Si applica a
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia dati in modo asincrono a un Socket connesso.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- offset
- Int32
Posizione in base zero nel parametro buffer
in corrispondenza della quale iniziare a inviare dati.
- size
- Int32
Numero di byte da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- errorCode
- SocketError
Oggetto SocketError che memorizza l'errore del socket.
- callback
- AsyncCallback
Delegato AsyncCallback.
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che fa riferimento all'invio asincrono.
Eccezioni
buffer
è null
.
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.
offset
è minore di 0.
-oppure-
offset
è minore della lunghezza di buffer
.
-oppure-
size
è minore di 0.
-oppure-
size
è maggiore della lunghezza di buffer
meno il valore del parametro offset
.
L'oggetto Socket è stato chiuso.
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 Task
equivalenti basati su base.
È possibile passare un callback che implementa AsyncCallback a BeginSend 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 BeginSend. 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 BeginSend metodo .
L'operazione asincrona BeginSend deve essere completata chiamando il EndSend metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndSend blocca il thread chiamante fino al completamento dell'operazione.
Anche se destinato ai protocolli orientati alla connessione, funziona anche per i protocolli senza connessione, BeginSend purché si chiami prima il Connect metodo o BeginConnect per stabilire un host remoto predefinito. Se si usa un protocollo senza connessione e si prevede di inviare dati a diversi host, è consigliabile usare BeginSendTo. È consigliabile usare BeginSendTo anche dopo aver stabilito un host remoto predefinito con Connect. È anche possibile modificare l'host remoto predefinito prima di chiamare BeginSend eseguendo un'altra chiamata a Connect o BeginConnect. Con i protocolli senza connessione, è anche necessario assicurarsi che le dimensioni del buffer non superino le dimensioni massime del provider di servizi sottostanti. In caso contrario, il datagram non verrà inviato e BeginSend genererà un SocketExceptionoggetto .
Se si specifica il DontRoute flag come socketflags
parametro, i dati inviati non verranno indirizzati.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico.
Nota
Tutti gli I/O avviati da un determinato thread vengono annullati quando il thread viene chiuso. Un'operazione asincrona in sospeso può non riuscire se il thread viene chiuso prima del completamento dell'operazione.
Nota
state
è un'istanza di una classe definita dall'utente.
Nota
Il completamento riuscito di un invio non indica che i dati sono stati recapitati correttamente. Se non è disponibile spazio buffer all'interno del sistema di trasporto per contenere i dati da trasmettere, l'invio bloccherà a meno che il socket non sia stato inserito in modalità non di blocco.
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.
Vedi anche
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling di un delegato come metodo di callback
- Esempio di socket client asincrono
- Esempio di socket server asincrono