Socket.SendToAsync Metodo

Definizione

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)

Source:
Socket.cs
Source:
Socket.cs
Source:
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

e
SocketAsyncEventArgs

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 necessarie le proprietà e gli eventi seguenti nell'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 saranno 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 , AcceptAsyncConnectBeginAcceptBeginConnecto .ConnectAsync In caso contrario SendToAsync , genererà un SocketExceptionoggetto . Quando si usa un protocollo orientato alla connessione, il SendToAsync metodo ignora la SocketAsyncEventArgs.RemoteEndPoint proprietà e invia i dati all'oggetto System.Net.EndPoint stabilito nel Acceptmetodo , BeginConnectConnectAcceptAsyncBeginAccepto .ConnectAsync

Se si usa un protocollo senza connessione, non è necessario stabilire un host remoto predefinito con , BeginConnectConnecto ConnectAsync metodo prima di chiamare SendToAsync. È necessario eseguire questa operazione solo se si intende chiamare i BeginSend metodi o SendAsync . Se si chiama il metodo , Connecto ConnectAsync prima di chiamare SendToAsync, la SocketAsyncEventArgs.RemoteEndPoint proprietà eseguirà l'override dell'host BeginConnectremoto predefinito specificato solo per tale operazione di invio. Non è inoltre necessario chiamare il Bind metodo. In questo caso, il provider di servizi sottostante assegna l'indirizzo IP di rete locale e il numero di porta più appropriati. Usare un numero di porta pari a zero se si vuole che il provider di servizi sottostanti selezioni una porta gratuita. Se è necessario identificare l'indirizzo IP di rete locale assegnato e il numero di porta, è possibile usare la LocalEndPoint proprietà dopo che l'evento SocketAsyncEventArgs.Completed viene segnalato e vengono chiamati i delegati associati.

Se si desidera inviare dati a un indirizzo di trasmissione, è prima necessario chiamare il SetSocketOption metodo e impostare l'opzione socket su SocketOptionName.Broadcast true. È 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 SendToAsync genererà un SocketExceptionoggetto .

Se si specifica il flag DontRoute nella SocketAsyncEventArgs.SocketFlags proprietà, i dati inviati non verranno indirizzati.

Per i socket orientati ai messaggi, è necessario prestare attenzione a non superare le dimensioni massime del messaggio del trasporto sottostante. Se la dimensione del buffer supera la dimensione massima del pacchetto del provider di servizi sottostante, il datagram non viene inviato e SendToAsync genererà un SocketExceptionoggetto . Il completamento riuscito di un SendToAsync metodo non indica che i dati sono stati recapitati correttamente.

Vedi anche

Si applica a

SendToAsync(ArraySegment<Byte>, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
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 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(ArraySegment<Byte>, SocketFlags, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
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 l'invio dei dati.

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)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
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 l'invio dei dati.

remoteEP
EndPoint

Host remoto a cui inviare i dati.

cancellationToken
CancellationToken

Token di annullamento che può essere usato 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)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
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 l'invio dei dati.

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 usato 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)

Source:
Socket.Tasks.cs
Source:
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 l'invio dei dati.

socketFlags
SocketFlags

Combinazione bit per bit di valori che verranno usati durante l'invio dei SocketFlags dati.

socketAddress
SocketAddress

Classe SocketAddress che rappresenta la destinazione dei dati.

cancellationToken
CancellationToken

Token di annullamento che può essere usato 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.

Si applica a