Función WSAGetLastError (winsock.h)

La función WSAGetLastError devuelve el estado de error de la última operación de Windows Sockets que produjo un error.

Sintaxis

int WSAGetLastError();

Valor devuelto

El valor devuelto indica el código de error de la última operación de Windows Sockets de este subproceso que produjo un error.

Comentarios

La función WSAGetLastError devuelve el último error que se produjo para el subproceso que realiza la llamada. Cuando se ha producido un error en una función de Windows Sockets determinada, se debe llamar a esta función inmediatamente para recuperar el código de error extendido para la llamada de función con error. Este código de error extendido puede ser diferente del código de error obtenido de getsockopt cuando se llama con un parámetro optname de SO_ERROR, que es específico del socket, ya que WSAGetLastError es para todos los sockets específicos del subproceso.

Si el valor devuelto de una llamada de función indica que se devolvió el error u otros datos relevantes en el código de error, se debe llamar inmediatamente a WSAGetLastError . Esto es necesario porque algunas funciones pueden restablecer el último código de error extendido a 0 si se realizan correctamente, sobrescribiendo el código de error extendido devuelto por una función con error anterior. Para restablecer específicamente el código de error extendido, use la llamada de función WSASetLastError con el parámetro iError establecido en cero. Una función getsockopt cuando se llama con un parámetro optname de SO_ERROR también restablece el código de error extendido a cero.

La función WSAGetLastError no debe usarse para comprobar si hay un valor de error extendido al recibir un mensaje asincrónico. En este caso, el valor de error extendido se pasa en el parámetro lParam del mensaje y esto puede diferir del valor devuelto por WSAGetLastError.

Nota Una aplicación puede llamar a la función WSAGetLastError para determinar el código de error extendido para otras funciones de sockets de Windows tal y como se hace normalmente en Windows Sockets aunque se produzca un error en la función WSAStartup o no se haya llamado a la función WSAStartup para inicializar correctamente Windows Sockets antes de llamar a una función de Windows Sockets. La función WSAGetLastError es una de las únicas funciones de la DLL winsock 2.2 a la que se puede llamar en caso de error de WSAStartup .
 

Los códigos de error extendidos de Windows Sockets devueltos por esta función y la descripción del texto del error se muestran en Códigos de error de Windows Sockets. Estos códigos de error y una breve descripción de texto asociada a un código de error se definen en el archivo de encabezado Winerror.h . La función FormatMessage se puede usar para obtener la cadena de mensaje del error devuelto.

Para obtener información sobre cómo controlar los códigos de error al migrar aplicaciones de socket a Winsock, vea Códigos de error: errno, h_errno y WSAGetLastError.

Windows Phone 8: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8 y versiones posteriores.

Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos

   
Cliente mínimo compatible Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winsock.h (incluya Winsock2.h)
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

Códigos de error: errno, h_errno y WSAGetLastError

FormatMessage

WSASetLastError

WSAStartup

Códigos de error de Windows Sockets

Funciones winsock

Referencia de Winsock

getsockopt