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