Exportar (0) Imprimir
Expandir todo

Socket.Send (Método) (IList genérico, SocketFlags, SocketError)

Nota: este método es nuevo en la versión 2.0 de .NET Framework.

Envía el conjunto de búferes de la lista a un Socket conectado, utilizando el SocketFlags especificado.

Este método no es compatible con CLS.  La alternativa compatible con CLS es Send(Byte[],Int32,SocketFlags).

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

[CLSCompliantAttribute(false)] 
public int Send (
	IList<ArraySegment<byte>> buffers,
	SocketFlags socketFlags,
	out SocketError errorCode
)
/** @attribute CLSCompliantAttribute(false) */ 
public int Send (
	IList<ArraySegment<byte>> buffers, 
	SocketFlags socketFlags, 
	/** @attribute OutAttribute() */ /** @ref */ SocketError errorCode
)
JScript no admite la operación de pasar argumentos de tipo de valor por referencia.

Parámetros

buffers

Lista de objetos ArraySegment de tipo Byte que contiene los datos que se han de enviar.

socketFlags

Combinación bit a bit de los valores de SocketFlags.

errorCode

Objeto SocketError que almacena el error de socket.

Valor devuelto

Número de bytes enviados al Socket.

Tipo de excepciónCondición

ArgumentNullException

buffers es referencia de objeto null (Nothing en Visual Basic).

ArgumentException

buffers está vacío.

SocketException

Se ha producido un error al intentar obtener acceso al socket. Vea la sección Comentarios para obtener más información.

ObjectDisposedException

Se ha cerrado Socket.

Esta sobrecarga requiere al menos un búfer que contenga los datos que se han de enviar. El valor predeterminado de SocketFlags es 0. Si especifica el indicador DontRoute como parámetro socketFlags, los datos que envíe no se enrutarán.

Si utiliza un protocolo sin conexión, deberá llamar a Connect antes de llamar a este método; de lo contrario, Send producirá una excepción SocketException. Si utiliza un protocolo basado en conexiones, deberá usar Connect para establecer conexión con un host remoto, o bien Accept para aceptar una conexión entrante.

Si utiliza un protocolo sin conexión y piensa enviar datos a varios hosts diferentes, deberá usar el método SendTo. Si no utiliza el método SendTo, deberá llamar a Connect antes de cada llamada a Send. Podrá usar SendTo aun cuando haya establecido un host remoto predeterminado mediante Connect. También puede cambiar el host remoto predeterminado antes de llamar a Send realizando otra llamada a Connect.

En protocolos orientados a la conexión, Send se bloqueará hasta que se hayan enviado todos los bytes del búfer, a menos que se haya establecido un tiempo de espera mediante Socket.SendTimeout. Si se superara el valor de tiempo de espera, la llamada a Send producirá una excepción SocketException. En modo de no bloqueo, Send puede finalizar correctamente aun cuando envíe un número de bytes menor que el del búfer. Corresponde a la aplicación realizar el seguimiento del número de bytes enviados y reintentar la operación hasta que envíe los bytes existentes en el búfer. No existe garantía de que los datos que envíe aparezcan inmediatamente en la red. Para mejorar la eficacia de la red, el sistema subyacente podría retrasar la transmisión hasta que se haya reunido un volumen significativo de datos salientes. La finalización correcta del método Send indica que el sistema subyacente ha contado con suficiente espacio para almacenar en búfer los datos de un envío por red.

NotaNota

En caso de recibir una excepción SocketException, puede utilizar la propiedad SocketException.ErrorCode para obtener el código de error específico. Una vez obtenido este código, consulte en MSDN Library la documentación de códigos de error de la API de Windows Sockets, versión 2, para ver una descripción detallada del error.

NotaNota

La conclusión correcta de un envío no implica una entrega correcta de los datos. Si el sistema de transporte no tuviera espacio de búfer suficiente para contener los datos que se han de transmitir, el envío quedará bloqueado a menos que el socket se encuentre en modo de no bloqueo.

NotaNota

Este miembro envía la información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de la red.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft