Socket.SendAsync Método

Definição

Sobrecargas

Name Description
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envia dados numa tomada ligada.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Envia dados numa tomada ligada.

SendAsync(ArraySegment<Byte>, SocketFlags)

Envia dados numa tomada ligada.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Envia dados numa tomada ligada.

SendAsync(IList<ArraySegment<Byte>>)

Envia dados numa tomada ligada.

SendAsync(ArraySegment<Byte>)

Envia dados numa tomada ligada.

SendAsync(SocketAsyncEventArgs)

Envia dados de forma assíncrona para um objeto ligado Socket .

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parâmetros

buffer
ReadOnlyMemory<Byte>

O buffer para os dados enviarem.

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

O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.

Aplica-se a

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma lista de buffers para os dados enviarem.

socketFlags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags que será usada ao enviar os dados.

Devoluções

Uma tarefa assíncrona que se completa com o número de bytes enviados.

Exceções

buffers é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Observações

Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por Send(IList<ArraySegment<Byte>>, SocketFlags).

Aplica-se a

SendAsync(ArraySegment<Byte>, SocketFlags)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) 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.

Devoluções

Uma tarefa assíncrona que se completa com o número de bytes enviados.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, 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.

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

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

SendAsync(IList<ArraySegment<Byte>>)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma lista de buffers para os dados enviarem.

Devoluções

Uma tarefa assíncrona que se completa com o número de bytes enviados.

Exceções

buffers é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Observações

Este método armazena na tarefa que devolve todas as exceções de não-utilização que o equivalente síncrono do método pode lançar. Se uma exceção for armazenada na tarefa devolvida, essa exceção será lançada quando a tarefa for aguardada. As exceções de uso, como ArgumentException, ainda são lançadas de forma síncrona. Para as exceções armazenadas, veja as exceções lançadas por Send(IList<ArraySegment<Byte>>).

Aplica-se a

SendAsync(ArraySegment<Byte>)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Envia dados numa tomada ligada.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer);
member this.SendAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parâmetros

buffer
ArraySegment<Byte>

O buffer para os dados enviarem.

Devoluções

Uma tarefa assíncrona que se completa com o número de bytes enviados.

Exceções

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a

SendAsync(SocketAsyncEventArgs)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados de forma assíncrona para um objeto ligado Socket .

public:
 bool SendAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendAsync (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

As Buffer propriedades ou BufferList no e parâmetro devem referenciar buffers válidos. Uma ou outra destas propriedades pode ser definida, mas não ambas ao mesmo tempo.

Uma operação de socket já estava em curso usando o SocketAsyncEventArgs objeto especificado no e parâmetro.

O Socket local foi encerrado.

O Socket ainda não está ligado ou não foi obtido através de um Accept()método , AcceptAsync(SocketAsyncEventArgs), ou BeginAccept, .

Observações

O SendAsync método é usado para escrever dados de saída de um ou mais buffers num soquete orientado à ligação. Este método também pode ser utilizado, no entanto, em sockets sem ligação que tenham especificado um host remoto numa operação de ligação.

O SendAsync método inicia uma operação de envio assíncrona para o host remoto estabelecida no Accept, AcceptAsync, BeginAccept, BeginConnect, Connect, ou ConnectAsync método.

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 SendAsync 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.

O SendAsync método lançará uma exceção se não chamar Acceptprimeiro , AcceptAsync, BeginAcceptBeginConnect, Connect, ou ConnectAsync.

Chamar o SendAsync método dá-lhe a capacidade de enviar dados dentro de um thread de execução separado.

Para sockets orientados a mensagens, não exceda o tamanho máximo da mensagem do fornecedor de serviço dos sockets Windows subjacentes. Se os dados forem demasiado longos para passar atomicamente através do fornecedor de serviço subjacente, nenhum dado é transmitido e o SendAsync método lança a SocketException com o SocketAsyncEventArgs.SocketError conjunto para o código de erro nativo WSAEMSGSIZE do Winsock (10040).

Note-se que a conclusão bem-sucedida do SendAsync método não indica que os dados foram entregues com sucesso.

Ver também

Aplica-se a