Socket.SendToAsync Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | 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 endpoint 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 usar para esta operação de soquete assíncrono.
Devoluções
true se a operação de E/S estiver pendente. O Completed evento no e parâmetro será ativado após a conclusão da operação.
false se a operação de E/S fosse concluída de forma síncrona. Neste caso, o Completed evento sobre o e parâmetro não será levantado e o e objeto passado como parâmetro pode ser examinado imediatamente após o retorno da chamada ao método para recuperar o resultado da operação.
Exceções
Não RemoteEndPoint podem ser nulas.
Uma operação de socket já estava em curso usando o SocketAsyncEventArgs objeto especificado no e parâmetro.
O Socket local foi encerrado.
O protocolo especificado é orientado à ligação, mas o Socket ainda não está ligado.
Observações
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 dá-lhe a capacidade de enviar dados dentro de um thread de execução separado. Embora este método seja destinado a protocolos sem conexão, SendToAsync funciona tanto com protocolos sem ligação como orientados à ligação.
Para ser notificado da conclusão, deve criar um método de callback que implemente o delegado EventHandler<SocketAsyncEventArgs> e anexar o callback ao SocketAsyncEventArgs.Completed evento.
As seguintes propriedades e eventos no System.Net.Sockets.SocketAsyncEventArgs objeto são necessárias para chamar com sucesso este método:
O chamador pode definir a SocketAsyncEventArgs.UserToken propriedade para qualquer objeto de estado do utilizador desejado antes de chamar o SendToAsync método, de modo a que a informação seja recuperável no método de retorno. Se o callback precisar de mais informação do que um único objeto, pode ser criada uma pequena classe para conter as outras informações de estado necessárias como membros.
Se estiver a usar um protocolo orientado à ligação, deve primeiro chamar o Accept, AcceptAsync, BeginAccept, BeginConnect, Connect, ou ConnectAsync método. Caso contrário, SendToAsync lançará um SocketException. Ao usar um protocolo orientado à ligação, o SendToAsync método ignora a SocketAsyncEventArgs.RemoteEndPoint propriedade e envia dados para o System.Net.EndPoint estabelecido no Accept, AcceptAsync, BeginAccept, BeginConnect, Connect, ou ConnectAsync método.
Se estiver a usar um protocolo sem conexão, não precisa de estabelecer um host remoto predefinido com o BeginConnect, Connect, ou ConnectAsync método antes de chamar SendToAsync. Só precisas de fazer isto se tencionares chamar os BeginSend métodos ou SendAsync . Se chamar o BeginConnect, , ou Connect método antes de chamar ConnectAsync, a SendToAsync propriedade irá sobrepor o host remoto predefinido especificado apenas para essa operação SocketAsyncEventArgs.RemoteEndPointde envio. Também não é obrigado a ligar para o Bind método. Neste caso, o fornecedor de serviços subjacente atribuirá o endereço IP local e o número de porta mais apropriados. Use um número de porta zero se quiser que o fornecedor de serviço subjacente selecione uma porta livre. Se precisar de identificar o endereço IP de rede local atribuído e o número de porta, pode usar a LocalEndPoint propriedade depois de o SocketAsyncEventArgs.Completed evento ser sinalizado e os delegados associados serem chamados.
Se quiser enviar dados para um endereço de broadcast, deve primeiro chamar o SetSocketOption método e definir a opção socket para SocketOptionName.Broadcast true. Deve também garantir que o tamanho do seu buffer não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e SendToAsync irá lançar um SocketException.
Se especificar a flag DontRoute na SocketAsyncEventArgs.SocketFlags propriedade, os dados que está a enviar não serão encaminhados.
Para sockets orientados a mensagens, deve ter-se 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 fornecedor de serviço subjacente, o datagrama não é enviado e SendToAsync irá lançar um SocketException. A conclusão bem-sucedida de um SendToAsync método não indica que os dados foram entregues com sucesso.
Ver 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 enviarem.
- remoteEP
- EndPoint
O host remoto para onde enviar os dados.
Devoluções
Uma tarefa assíncrona que se completa com o número de bytes enviados.
Exceções
remoteEP é null.
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
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 enviarem.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags que será usada ao enviar os dados.
- remoteEP
- EndPoint
O host remoto para onde enviar os dados.
Devoluções
Uma tarefa assíncrona que se completa com o número de bytes enviados.
Exceções
remoteEP é null.
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
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 enviarem.
- remoteEP
- EndPoint
O host remoto para onde enviar os dados.
- cancellationToken
- CancellationToken
Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.
Devoluções
Uma tarefa assíncrona que se completa com o número de bytes enviados.
Exceções
remoteEP é null.
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.
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 enviarem.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags que será usada ao enviar os dados.
- remoteEP
- EndPoint
O host remoto para onde enviar os dados.
- cancellationToken
- CancellationToken
Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.
Devoluções
Uma tarefa assíncrona que se completa com o número de bytes enviados.
Exceções
remoteEP é null.
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.
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 endpoint 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 enviarem.
- socketFlags
- SocketFlags
Uma combinação bit a bit de SocketFlags valores que será usada 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.
Devoluções
Uma tarefa assíncrona que se completa com o número de bytes enviados.
Exceções
socketAddress é null.
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.