Socket.SendToAsync 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.
Overload
SendToAsync(SocketAsyncEventArgs) |
Invia i dati in modo asincrono a un host remoto specifico. |
SendToAsync(ArraySegment<Byte>, EndPoint) |
Invia i dati all'host remoto specificato. |
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Invia i dati all'host remoto specificato. |
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken) |
Invia i dati all'host remoto specificato. |
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Invia i dati all'host remoto specificato. |
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken) |
Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato. |
SendToAsync(SocketAsyncEventArgs)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Invia i dati in modo asincrono a un host remoto specifico.
public:
bool SendToAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendToAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendToAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendToAsync (e As SocketAsyncEventArgs) As Boolean
Parametri
Oggetto SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.
Restituisce
true
se l'operazione di I/O è in sospeso. Al completamento dell'operazione verrà generato l'evento Completed sul parametro e
.
false
se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento Completed sul parametro e
non verrà generato e l'oggetto e
passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
Eccezioni
L'oggetto RemoteEndPoint non può essere null.
Era già in corso un'operazione di socket che utilizza l'oggetto SocketAsyncEventArgs specificato nel parametro e
.
L'oggetto Socket è stato chiuso.
Il protocollo specificato è orientato alla connessione, ma l'oggetto Socket non è ancora connesso.
Commenti
Il SendToAsync metodo avvia un'operazione di invio asincrona all'host remoto specificato nella SocketAsyncEventArgs.RemoteEndPoint proprietà del e
parametro . La chiamata al SendToAsync metodo consente di inviare dati all'interno di un thread di esecuzione separato. Anche se questo metodo è destinato ai protocolli senza connessione, SendToAsync funziona con protocolli sia senza connessione che orientati alla connessione.
Per ricevere una notifica di completamento, è necessario creare un metodo di callback che implementa il delegato EventHandler<SocketAsyncEventArgs> e collegare il callback all'evento SocketAsyncEventArgs.Completed .
Per chiamare correttamente questo metodo, sono necessari gli eventi e le proprietà seguenti sull'oggetto System.Net.Sockets.SocketAsyncEventArgs :
Il chiamante può impostare la SocketAsyncEventArgs.UserToken proprietà su qualsiasi oggetto stato utente desiderato prima di chiamare il SendToAsync metodo, in modo che le informazioni siano recuperabili nel metodo di callback. Se il callback richiede più informazioni di un singolo oggetto, è possibile creare una classe piccola per contenere le altre informazioni sullo stato necessarie come membri.
Se si usa un protocollo orientato alla connessione, è prima necessario chiamare il Acceptmetodo , AcceptAsync, BeginAcceptBeginConnect, Connect, o ConnectAsync . In caso contrario SendToAsync , genererà un'eccezione SocketException. Quando si usa un protocollo orientato alla connessione, il SendToAsync metodo ignorerà la SocketAsyncEventArgs.RemoteEndPoint proprietà e invierà i dati all'oggetto System.Net.EndPoint stabilito nel Acceptmetodo , AcceptAsync, BeginAcceptBeginConnect, Connect, o ConnectAsync .
Se si usa un protocollo senza connessione, non è necessario stabilire un host remoto predefinito con il BeginConnectmetodo , Connecto ConnectAsync prima di chiamare SendToAsync. È sufficiente eseguire questa operazione solo se si intende chiamare i BeginSend metodi o SendAsync . Se si chiama il BeginConnectmetodo , Connecto ConnectAsync prima di chiamare SendToAsync, la SocketAsyncEventArgs.RemoteEndPoint proprietà eseguirà l'override dell'host remoto predefinito specificato solo per l'operazione di invio. Non è inoltre necessario chiamare il Bind metodo . In questo caso, il provider di servizi sottostante assegnerà l'indirizzo IP e il numero di porta di rete locali più appropriati. Usare un numero di porta pari a zero se si vuole che il provider di servizi sottostante selezioni una porta libera. Se è necessario identificare l'indirizzo IP e il numero di porta della rete locale assegnati, è possibile usare la LocalEndPoint proprietà dopo che l'evento SocketAsyncEventArgs.Completed è stato segnalato e i delegati associati vengono chiamati.
Se si desidera inviare dati a un indirizzo broadcast, è prima necessario chiamare il SetSocketOption metodo e impostare l'opzione socket per su SocketOptionName.Broadcast true. È inoltre necessario assicurarsi che le dimensioni del buffer non superino le dimensioni massime del pacchetto del provider di servizi sottostante. In caso affermativo, il datagramma non verrà inviato e SendToAsync genererà un'eccezione SocketException.
Se si specifica il flag DontRoute nella SocketAsyncEventArgs.SocketFlags proprietà , i dati inviati non verranno instradati.
Per i socket orientati ai messaggi, è necessario prestare attenzione a non superare le dimensioni massime del messaggio del trasporto sottostante. Se le dimensioni del buffer superano le dimensioni massime del pacchetto del provider di servizi sottostante, il datagramma non viene inviato e SendToAsync genererà un'eccezione SocketException. Il completamento corretto di un SendToAsync metodo non indica che i dati sono stati recapitati correttamente.
Vedi anche
Si applica a
SendToAsync(ArraySegment<Byte>, EndPoint)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Invia i dati all'host remoto specificato.
public:
System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), remoteEP As EndPoint) As Task(Of Integer)
Parametri
- buffer
- ArraySegment<Byte>
Buffer per i dati da inviare.
- remoteEP
- EndPoint
Host remoto a cui inviare i dati.
Restituisce
Attività asincrona che viene completata con il numero di byte inviati.
Eccezioni
remoteEP
è null
.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Si applica a
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Invia i dati all'host remoto specificato.
public:
System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) As Task(Of Integer)
Parametri
- buffer
- ArraySegment<Byte>
Buffer per i dati da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori SocketFlags che verranno usati durante l'invio dei dati.
- remoteEP
- EndPoint
Host remoto a cui inviare i dati.
Restituisce
Attività asincrona che viene completata con il numero di byte inviati.
Eccezioni
remoteEP
è null
.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Si applica a
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Invia i dati all'host remoto specificato.
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametri
- buffer
- ReadOnlyMemory<Byte>
Buffer per i dati da inviare.
- remoteEP
- EndPoint
Host remoto a cui inviare i dati.
- cancellationToken
- CancellationToken
Token di annullamento che può essere utilizzato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata con il numero di byte inviati.
Eccezioni
remoteEP
è null
.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Si applica a
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Invia i dati all'host remoto specificato.
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametri
- buffer
- ReadOnlyMemory<Byte>
Buffer per i dati da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori SocketFlags che verranno usati durante l'invio dei dati.
- remoteEP
- EndPoint
Host remoto a cui inviare i dati.
- cancellationToken
- CancellationToken
Token di annullamento che può essere utilizzato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata con il numero di byte inviati.
Eccezioni
remoteEP
è null
.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Si applica a
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametri
- buffer
- ReadOnlyMemory<Byte>
Buffer per i dati da inviare.
- socketFlags
- SocketFlags
Combinazione bit per bit di SocketFlags valori che verranno usati durante l'invio dei dati.
- socketAddress
- SocketAddress
Classe SocketAddress che rappresenta la destinazione dei dati.
- cancellationToken
- CancellationToken
Token di annullamento che può essere utilizzato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata con il numero di byte inviati.
Eccezioni
socketAddress
è null
.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.