Socket.SendAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Envía datos en un socket conectado. |
| SendAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Envía datos en un socket conectado. |
| SendAsync(ArraySegment<Byte>, SocketFlags) |
Envía datos en un socket conectado. |
| SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Envía datos en un socket conectado. |
| SendAsync(IList<ArraySegment<Byte>>) |
Envía datos en un socket conectado. |
| SendAsync(ArraySegment<Byte>) |
Envía datos en un socket conectado. |
| SendAsync(SocketAsyncEventArgs) |
Envía datos de forma asincrónica a un objeto conectado Socket . |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>
Búfer de los datos que se van a enviar.
- cancellationToken
- CancellationToken
Token de cancelación que se puede usar para cancelar la operación asincrónica.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Se aplica a
SendAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>>
Lista de búferes para los datos que se van a enviar.
- socketFlags
- SocketFlags
Combinación bit a bit de valores SocketFlags que se usarán al enviar los datos.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
buffers es null.
Error al intentar acceder al socket.
Se Socket ha cerrado.
Comentarios
Este método almacena en la tarea que devuelve todas las excepciones de no uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, todavía se producen sincrónicamente. Para las excepciones almacenadas, consulte las excepciones producidas por Send(IList<ArraySegment<Byte>>, SocketFlags).
Se aplica a
SendAsync(ArraySegment<Byte>, SocketFlags)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>
Búfer de los datos que se van a enviar.
- socketFlags
- SocketFlags
Combinación bit a bit de valores SocketFlags que se usarán al enviar los datos.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
Error al intentar acceder al socket.
Se Socket ha cerrado.
Se aplica a
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>
Búfer de los datos que se van a enviar.
- socketFlags
- SocketFlags
Combinación bit a bit de valores SocketFlags que se usarán al enviar los datos.
- cancellationToken
- CancellationToken
Token de cancelación que se puede usar para cancelar la operación asincrónica.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
Error al intentar acceder al socket.
Se Socket ha cerrado.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Se aplica a
SendAsync(IList<ArraySegment<Byte>>)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>>
Lista de búferes para los datos que se van a enviar.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
buffers es null.
Error al intentar acceder al socket.
Se Socket ha cerrado.
Comentarios
Este método almacena en la tarea que devuelve todas las excepciones de no uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, todavía se producen sincrónicamente. Para las excepciones almacenadas, consulte las excepciones producidas por Send(IList<ArraySegment<Byte>>).
Se aplica a
SendAsync(ArraySegment<Byte>)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Envía datos en un socket 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>
Búfer de los datos que se van a enviar.
Devoluciones
Tarea asincrónica que se completa con el número de bytes enviados.
Excepciones
Error al intentar acceder al socket.
Se Socket ha cerrado.
Se aplica a
SendAsync(SocketAsyncEventArgs)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envía datos de forma asincrónica a un 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
Objeto SocketAsyncEventArgs que se va a usar para esta operación de socket asincrónico.
Devoluciones
true si la operación de E/S está pendiente. El Completed evento en el e parámetro se generará tras la finalización de la operación.
false si la operación de E/S se completó sincrónicamente. En este caso, Completed no se generará el evento en el e parámetro y el e objeto pasado como parámetro se puede examinar inmediatamente después de que la llamada al método devuelva para recuperar el resultado de la operación.
Excepciones
Las Buffer propiedades o BufferList del e parámetro deben hacer referencia a búferes válidos. Se puede establecer una o la otra de estas propiedades, pero no ambas al mismo tiempo.
Una operación de socket ya estaba en curso mediante el SocketAsyncEventArgs objeto especificado en el e parámetro .
Se Socket ha cerrado.
el Socket objeto aún no está conectado o no se obtuvo a través de un Accept()método , AcceptAsync(SocketAsyncEventArgs)o BeginAccept, .
Comentarios
El SendAsync método se usa para escribir datos salientes de uno o varios búferes en un socket orientado a la conexión. Sin embargo, este método también se puede usar en sockets sin conexión que hayan especificado un host remoto en una operación de conexión.
El SendAsync método inicia una operación de envío asincrónica al host remoto establecido en el Acceptmétodo , AcceptAsync, BeginAccept, BeginConnect, Connecto ConnectAsync .
Se requieren las siguientes propiedades y eventos en el System.Net.Sockets.SocketAsyncEventArgs objeto para llamar correctamente a este método:
SocketAsyncEventArgs.Buffer o SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count si SocketAsyncEventArgs.Buffer se establece
SocketAsyncEventArgs.Offset si SocketAsyncEventArgs.Buffer se establece
El autor de la llamada puede establecer la SocketAsyncEventArgs.UserToken propiedad en cualquier objeto de estado de usuario deseado antes de llamar al SendAsync método , de modo que la información se pueda recuperar en el método de devolución de llamada. Si la devolución de llamada necesita más información que un único objeto, se puede crear una clase pequeña para contener la otra información de estado necesaria como miembros.
El SendAsync método producirá una excepción si no llama primero a Accept, , AcceptAsyncBeginConnectBeginAccept, o . ConnectConnectAsync
Llamar al SendAsync método proporciona la capacidad de enviar datos dentro de un subproceso de ejecución independiente.
En el caso de los sockets orientados a mensajes, no supere el tamaño máximo del mensaje del proveedor de servicios de Windows Sockets subyacente. Si los datos son demasiado largos para pasar de forma atómica a través del proveedor de servicios subyacente, no se transmite ningún dato y el SendAsync método produce un SocketException con el SocketAsyncEventArgs.SocketError establecido en el código de error nativo de Winsock WSAEMSGSIZE (10040).
Tenga en cuenta que la finalización correcta del SendAsync método no indica que los datos se entregaron correctamente.