Socket.SendToAsync Método

Definição

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

e
SocketAsyncEventArgs

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.

Aplica-se a