Socket.SendAsync 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 |
|---|---|
| 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.
O Socket foi fechado.
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.
O Socket foi fechado.
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 Socket foi fechado.
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.
O Socket foi fechado.
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.
O Socket foi fechado.
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
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 foi fechado.
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:
SocketAsyncEventArgs.Buffer ou SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count se SocketAsyncEventArgs.Buffer estiver definido
SocketAsyncEventArgs.Offset se SocketAsyncEventArgs.Buffer estiver definido
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.