Compartilhar via


Socket.SendAsync Método

Definição

Sobrecargas

Nome Description
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Envia dados em um soquete conectado.

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

Envia dados em um soquete conectado.

SendAsync(ArraySegment<Byte>, SocketFlags)

Envia dados em um soquete conectado.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Envia dados em um soquete conectado.

SendAsync(IList<ArraySegment<Byte>>)

Envia dados em um soquete conectado.

SendAsync(ArraySegment<Byte>)

Envia dados em um soquete conectado.

SendAsync(SocketAsyncEventArgs)

Envia dados de forma assíncrona para um objeto conectado 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 em um soquete conectado.

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 a serem enviados.

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

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

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 em um soquete conectado.

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 a serem enviados.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao enviar os dados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes enviados.

Exceções

buffers é null.

Erro ao tentar acessar o soquete.

Comentários

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas 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 em um soquete conectado.

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 a serem enviados.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao enviar os dados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes enviados.

Exceções

Erro ao tentar acessar o soquete.

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 em um soquete conectado.

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 a serem enviados.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao 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

Erro ao tentar acessar o soquete.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

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 em um soquete conectado.

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 a serem enviados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes enviados.

Exceções

buffers é null.

Erro ao tentar acessar o soquete.

Comentários

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas 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 em um soquete conectado.

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 a serem enviados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes enviados.

Exceções

Erro ao tentar acessar o soquete.

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 conectado 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 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

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

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

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

Comentários

O SendAsync método é usado para gravar dados de saída de um ou mais buffers em um soquete orientado à conexão. Esse método também pode ser usado, no entanto, em soquetes sem conexão que especificaram um host remoto em uma operação de conexão.

O SendAsync método inicia uma operação de envio assíncrona para o host remoto estabelecido no Acceptmétodo , AcceptAsync, , BeginAcceptBeginConnect, Connectou ConnectAsync método.

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

O SendAsync método gerará uma exceção se você não chamar Acceptprimeiro, AcceptAsync, , BeginAcceptBeginConnectou ConnectConnectAsync.

Chamar o SendAsync método oferece a capacidade de enviar dados em um thread de execução separado.

Para soquetes orientados a mensagens, não exceda o tamanho máximo da mensagem do provedor de serviços de soquetes do Windows subjacente. Se os dados forem muito longos para passar atomicamente pelo provedor de serviços subjacente, nenhum dado será transmitido e o SendAsync método gerará um SocketException com o SocketAsyncEventArgs.SocketError conjunto para o código de erro nativo Winsock WSAEMSGSIZE (10040).

Observe que a conclusão bem-sucedida do SendAsync método não indica que os dados foram entregues com êxito.

Confira também

Aplica-se a