¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
SendPacketsAsync (Método)
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Socket.SendPacketsAsync (Método)

Envía de forma asincrónica una colección de archivos o búferes de datos en memoria a un objeto Socket conectado.

Espacio de nombres:  System.Net.Sockets
Ensamblado:  System (en System.dll)

public bool SendPacketsAsync(
	SocketAsyncEventArgs e
)

Parámetros

e
Tipo: System.Net.Sockets.SocketAsyncEventArgs
Objeto System.Net.Sockets.SocketAsyncEventArgs que se usa para esta operación de socket asincrónica.

Valor devuelto

Tipo: System.Boolean
Devuelve true si la operación de E/S está pendiente. Al completar la operación se provoca el evento SocketAsyncEventArgs.Completed del parámetro e.
Devuelve false si la operación de E/S se completó de forma sincrónica. En ese caso, el evento SocketAsyncEventArgs.Completed del parámetro e no se provoca y el objeto e que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.

ExcepciónCondición
FileNotFoundException

No se encontró el archivo especificado en la propiedad SendPacketsElement.FilePath.

InvalidOperationException

Ya hay una operación de socket en curso que utiliza el objeto System.Net.Sockets.SocketAsyncEventArgs especificado en el parámetro e.

NotSupportedException

Se requiere Windows XP o posteriores para este método. Esta excepción también se produce si Socket no está conectado a un host remoto.

ObjectDisposedException

Se ha cerrado el objeto Socket.

SocketException

Se está usando un Socket sin conexión y el archivo que se está enviando supera el tamaño de paquete máximo del transporte subyacente.

El método SendPacketsAsync se utiliza para enviar al host remoto una colección de archivos o búferes de datos en memoria. Socket ya debe estar conectado al host remoto.

Si System.Net.Sockets.SendPacketsElement hace referencia a un archivo del directorio de trabajo, bastará el nombre de archivo para identificarlo; de lo contrario, se deberá especificar la ruta de acceso completa y el nombre de archivo. Se admiten caracteres comodín y nombres de recurso compartido UNC. Si no se encuentra el archivo, se produce una excepción FileNotFoundException.

Para que se notifique la realización, debe crear un método de devolución de llamada que implemente el delegado <SocketAsyncEventArgs> de EventHandler y asociar la devolución de llamada al evento SocketAsyncEventArgs.Completed.

La propiedad SocketAsyncEventArgs.SendPacketsFlags del parámetro e proporciona al proveedor de servicios de Windows Sockets información adicional sobre la transferencia de archivos. Para obtener más información sobre cómo utilizar este parámetro, vea TransmitFileOptions.

Los eventos y propiedades siguientes del objeto System.Net.Sockets.SocketAsyncEventArgs son necesarios para llamar correctamente a este método:

El llamador puede establecer la propiedad SocketAsyncEventArgs.UserToken en cualquier objeto de estado de usuario que desee antes de llamar al método SendPacketsAsync de modo que la información pueda recuperarse en el método de devolución de llamada. Si la devolución de llamada necesita más información que un solo objeto, puede crearse una pequeña clase que contenga el resto de la información de estado requerida como miembros.

Este método usa la función TransmitPackets de la API de Windows Sockets, versión 2. Para obtener más información sobre la función TransmitPackets y sus marcadores, vea la documentación sobre Windows Sockets en MSDN Library.

Si bien está pensado para los protocolos orientados a la conexión, el método SendPacketsAsync también sirve para los protocolos sin conexión, siempre que se llame primero al método BeginConnect, Connect o ConnectAsync para establecer un host remoto predeterminado. Con protocolos sin conexión, también es importante asegurarse de que el tamaño del archivo no supera el tamaño máximo de paquetes del proveedor de servicios subyacente. Si así fuera, el datagrama no se enviará y SendPacketsAsync producirá una excepción SocketException.

El método SendPacketsAsync se optimiza según el sistema operativo en el que se usa. En ediciones de servidor de Windows, el método SendPacketsAsync se optimiza para el máximo rendimiento.

En las ediciones de cliente de Windows, el método SendPacketsAsync se optimiza para la mínima utilización de memoria y recursos.

El uso del marcador TransmitFileOptions.UseKernelApc en la propiedad SocketAsyncEventArgs.SendPacketsFlags del parámetro e puede proporcionar ventajas de rendimiento significativas. Si el subproceso que inicia la llamada al método SendPacketsAsync se usa para cálculos complejos, es posible, aunque improbable, que se impida el inicio de las APC. Observe que hay una diferencia entre las APC de kernel y de modo usuario. Las APC del kernel se inician cuando un subproceso está en espera. Las APC de modo usuario se inician cuando un subproceso está en un estado de espera en alerta.

.NET Framework

Compatible con: 4.5, 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft