Compartir por


Socket.SendToAsync Método

Definición

Sobrecargas

Nombre Description
SendToAsync(SocketAsyncEventArgs)

Envía datos de forma asincrónica a un host remoto específico.

SendToAsync(ArraySegment<Byte>, EndPoint)

Envía datos al host remoto especificado.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Envía datos al host remoto especificado.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Envía datos a un punto de conexión específico mediante el especificado SocketFlags.

SendToAsync(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 host remoto específico.

public:
 bool SendToAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendToAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendToAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendToAsync (e As SocketAsyncEventArgs) As Boolean

Parámetros

e
SocketAsyncEventArgs

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

Una operación de socket ya estaba en curso mediante el SocketAsyncEventArgs objeto especificado en el e parámetro .

El protocolo especificado está orientado a la conexión, pero Socket aún no está conectado.

Comentarios

El SendToAsync método inicia una operación de envío asincrónica al host remoto especificado en la SocketAsyncEventArgs.RemoteEndPoint propiedad del e parámetro . Llamar al SendToAsync método proporciona la capacidad de enviar datos dentro de un subproceso de ejecución independiente. Aunque este método está pensado para protocolos sin conexión, SendToAsync funciona con protocolos sin conexión y orientados a conexiones.

Para recibir una notificación de finalización, debe crear un método de devolución de llamada que implemente el delegado EventHandler<SocketAsyncEventArgs> y adjuntar la devolución de llamada al SocketAsyncEventArgs.Completed evento.

Se requieren las siguientes propiedades y eventos en el System.Net.Sockets.SocketAsyncEventArgs objeto para llamar correctamente a este método:

El autor de la llamada puede establecer la SocketAsyncEventArgs.UserToken propiedad en cualquier objeto de estado de usuario deseado antes de llamar al SendToAsync 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.

Si usa un protocolo orientado a la conexión, primero debe llamar al Acceptmétodo , , AcceptAsyncBeginAccept, BeginConnect, , Connecto ConnectAsync . De lo contrario SendToAsync , producirá una SocketExceptionexcepción . Cuando se usa un protocolo orientado a la conexión, el SendToAsync método omitirá la SocketAsyncEventArgs.RemoteEndPoint propiedad y enviará datos al System.Net.EndPoint objeto establecido en el Acceptmétodo , , AcceptAsyncBeginAccept, BeginConnect, Connecto ConnectAsync .

Si usa un protocolo sin conexión, no es necesario establecer un host remoto predeterminado con el BeginConnectmétodo , Connecto antes ConnectAsync de llamar SendToAsynca . Solo tiene que hacerlo si piensa llamar a los BeginSend métodos o SendAsync . Si llama al BeginConnectmétodo , Connecto ConnectAsync antes de llamar SendToAsynca , la SocketAsyncEventArgs.RemoteEndPoint propiedad invalidará el host remoto predeterminado especificado para esa operación de envío. Tampoco es necesario llamar al Bind método . En este caso, el proveedor de servicios subyacente asignará la dirección IP de red local y el número de puerto más adecuados. Use un número de puerto de cero si desea que el proveedor de servicios subyacente seleccione un puerto libre. Si necesita identificar la dirección IP de red local asignada y el número de puerto, puede usar la LocalEndPoint propiedad después de que se señale el SocketAsyncEventArgs.Completed evento y se llame a los delegados asociados.

Si desea enviar datos a una dirección de difusión, primero debe llamar al SetSocketOption método y establecer la opción de socket para en SocketOptionName.Broadcast true. También debe asegurarse de que el tamaño del búfer no supere el tamaño máximo del paquete del proveedor de servicios subyacente. Si lo hace, el datagrama no se enviará y SendToAsync producirá una SocketExceptionexcepción .

Si especifica la marca DontRoute en la SocketAsyncEventArgs.SocketFlags propiedad , los datos que va a enviar no se enrutarán.

En el caso de los sockets orientados a mensajes, se debe tener cuidado para no superar el tamaño máximo del mensaje del transporte subyacente. Si el tamaño del búfer supera el tamaño máximo del paquete del proveedor de servicios subyacente, el datagrama no se envía y SendToAsync producirá una SocketExceptionexcepción . La finalización correcta de un SendToAsync método no indica que los datos se entregaron correctamente.

Consulte también

Se aplica a

SendToAsync(ArraySegment<Byte>, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envía datos al host remoto especificado.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), remoteEP As EndPoint) As Task(Of Integer)

Parámetros

buffer
ArraySegment<Byte>

Búfer de los datos que se van a enviar.

remoteEP
EndPoint

Host remoto al que se van a enviar los datos.

Devoluciones

Tarea asincrónica que se completa con el número de bytes enviados.

Excepciones

remoteEP es null.

Error al intentar acceder al socket.

Se aplica a

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envía datos al host remoto especificado.

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

remoteEP
EndPoint

Host remoto al que se van a enviar los datos.

Devoluciones

Tarea asincrónica que se completa con el número de bytes enviados.

Excepciones

remoteEP es null.

Error al intentar acceder al socket.

Se aplica a

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envía datos al host remoto especificado.

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

Parámetros

buffer
ReadOnlyMemory<Byte>

Búfer de los datos que se van a enviar.

remoteEP
EndPoint

Host remoto al que se van a 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

remoteEP es null.

Error al intentar acceder al socket.

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envía datos al host remoto especificado.

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

remoteEP
EndPoint

Host remoto al que se van a 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

remoteEP es null.

Error al intentar acceder al socket.

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envía datos a un punto de conexión específico mediante el especificado SocketFlags.

public System.Threading.Tasks.ValueTask<int> SendToAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, 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 SocketFlags valores que se usarán al enviar los datos.

socketAddress
SocketAddress

SocketAddress que representa el destino de 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

socketAddress es null.

Error al intentar acceder al socket.

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a