Socket.SendToAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| SendToAsync(SocketAsyncEventArgs) |
Envia dados de forma assíncrona para um host remoto específico. |
| SendToAsync(ArraySegment<Byte>, EndPoint) |
Envia dados para o host remoto especificado. |
| SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Envia dados para o host remoto especificado. |
| SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken) |
Envia dados para o host remoto especificado. |
| SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Envia dados para o host remoto especificado. |
| SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken) |
Envia dados para um ponto de extremidade específico usando o especificado SocketFlags. |
SendToAsync(SocketAsyncEventArgs)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Envia dados de forma assíncrona para um host remoto específico.
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
Parâmetros
O SocketAsyncEventArgs objeto a ser usado para esta operação de soquete assíncrona.
Retornos
true se a operação de E/S estiver pendente. O Completed evento no e parâmetro será gerado após a conclusão da operação.
false se a operação de E/S for concluída de forma síncrona. Nesse caso, Completed o e evento no parâmetro não será gerado e o e objeto passado como um parâmetro poderá ser examinado imediatamente após a chamada do método retornar para recuperar o resultado da operação.
Exceções
Não RemoteEndPoint pode ser nulo.
Uma operação de soquete já estava em andamento usando o SocketAsyncEventArgs objeto especificado no e parâmetro.
O Socket foi fechado.
O protocolo especificado é orientado à conexão, mas ainda Socket não está conectado.
Comentários
O SendToAsync método inicia uma operação de envio assíncrona para o host remoto especificado na SocketAsyncEventArgs.RemoteEndPoint propriedade do e parâmetro. Chamar o SendToAsync método oferece a capacidade de enviar dados em um thread de execução separado. Embora esse método seja destinado a protocolos sem conexão, SendToAsync funciona com protocolos sem conexão e orientados à conexão.
Para ser notificado sobre a conclusão, você deve criar um método de retorno de chamada que implemente o delegado EventHandler<SocketAsyncEventArgs> e anexe o retorno de chamada ao SocketAsyncEventArgs.Completed evento.
As seguintes propriedades e eventos no System.Net.Sockets.SocketAsyncEventArgs objeto são necessários para chamar esse método com êxito:
O chamador pode definir a SocketAsyncEventArgs.UserToken propriedade para qualquer objeto de estado de usuário desejado antes de chamar o SendToAsync método, para que as informações sejam recuperáveis no método de retorno de chamada. Se o retorno de chamada precisar de mais informações do que um único objeto, uma classe pequena poderá ser criada para manter as outras informações de estado necessárias como membros.
Se você estiver usando um protocolo orientado à conexão, primeiro deverá chamar o Acceptmétodo, , AcceptAsync, BeginAccept, ConnectBeginConnectou ConnectAsync método. Caso contrário SendToAsync , lançará um SocketException. Ao usar um protocolo orientado à conexão, o SendToAsync método ignorará a SocketAsyncEventArgs.RemoteEndPoint propriedade e enviará dados para o System.Net.EndPoint método estabelecido no Acceptmétodo , AcceptAsync, , BeginAcceptBeginConnect, ConnectouConnectAsync.
Se você estiver usando um protocolo sem conexão, não precisará estabelecer um host remoto padrão com o BeginConnectmétodo , Connectou ConnectAsync antes de chamar SendToAsync. Você só precisará fazer isso se pretender chamar os métodos ou SendAsync os BeginSend métodos. Se você chamar o BeginConnectmétodo , Connectou ConnectAsync método antes da chamada SendToAsync, a SocketAsyncEventArgs.RemoteEndPoint propriedade substituirá o host remoto padrão especificado apenas para essa operação de envio. Você também não é obrigado a chamar o Bind método. Nesse caso, o provedor de serviços subjacente atribuirá o endereço IP de rede local mais apropriado e o número da porta. Use um número de porta zero se desejar que o provedor de serviços subjacente selecione uma porta gratuita. Se você precisar identificar o endereço IP da rede local atribuído e o número da porta, poderá usar a LocalEndPoint propriedade depois que o SocketAsyncEventArgs.Completed evento for sinalizado e os delegados associados forem chamados.
Se você quiser enviar dados para um endereço de transmissão, primeiro deve chamar o SetSocketOption método e definir a opção de soquete como SocketOptionName.Broadcast true. Você também deve ter certeza de que o tamanho do buffer não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e SendToAsync gerará um SocketException.
Se você especificar o sinalizador DontRoute na SocketAsyncEventArgs.SocketFlags propriedade, os dados que você está enviando não serão roteado.
Para soquetes orientados a mensagens, deve-se tomar cuidado para não exceder o tamanho máximo da mensagem do transporte subjacente. Se o tamanho do buffer exceder o tamanho máximo do pacote do provedor de serviços subjacente, o datagrama não será enviado e SendToAsync gerará um SocketException. A conclusão bem-sucedida de um SendToAsync método não indica que os dados foram entregues com êxito.
Confira também
Aplica-se a
SendToAsync(ArraySegment<Byte>, EndPoint)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
Envia dados para o host remoto especificado.
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)
Parâmetros
- buffer
- ArraySegment<Byte>
O buffer para os dados a serem enviados.
- remoteEP
- EndPoint
O host remoto para o qual enviar os dados.
Retornos
Uma tarefa assíncrona que é concluída com o número de bytes enviados.
Exceções
remoteEP é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Aplica-se a
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
Envia dados para o host remoto especificado.
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)
Parâmetros
- buffer
- ArraySegment<Byte>
O buffer para os dados a serem enviados.
- socketFlags
- SocketFlags
Uma combinação bit a bit de valores SocketFlags que serão usados ao enviar os dados.
- remoteEP
- EndPoint
O host remoto para o qual enviar os dados.
Retornos
Uma tarefa assíncrona que é concluída com o número de bytes enviados.
Exceções
remoteEP é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Aplica-se a
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
Envia dados para o host remoto especificado.
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)
Parâmetros
- buffer
- ReadOnlyMemory<Byte>
O buffer para os dados a serem enviados.
- remoteEP
- EndPoint
O host remoto para o qual enviar os dados.
- cancellationToken
- CancellationToken
Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.
Retornos
Uma tarefa assíncrona que é concluída com o número de bytes enviados.
Exceções
remoteEP é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.
Aplica-se a
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
Envia dados para o host remoto especificado.
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)
Parâmetros
- buffer
- ReadOnlyMemory<Byte>
O buffer para os dados a serem enviados.
- socketFlags
- SocketFlags
Uma combinação bit a bit de valores SocketFlags que serão usados ao enviar os dados.
- remoteEP
- EndPoint
O host remoto para o qual enviar os dados.
- cancellationToken
- CancellationToken
Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.
Retornos
Uma tarefa assíncrona que é concluída com o número de bytes enviados.
Exceções
remoteEP é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.
Aplica-se a
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
Envia dados para um ponto de extremidade específico usando o especificado SocketFlags.
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)
Parâmetros
- buffer
- ReadOnlyMemory<Byte>
O buffer para os dados a serem enviados.
- socketFlags
- SocketFlags
Uma combinação bit a bit de SocketFlags valores que serão usados ao enviar os dados.
- socketAddress
- SocketAddress
O SocketAddress que representa o destino dos dados.
- cancellationToken
- CancellationToken
Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.
Retornos
Uma tarefa assíncrona que é concluída com o número de bytes enviados.
Exceções
socketAddress é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.