- La siguiente es una lista de posibles errores devueltos por la llamada a WSAGetLastError, con sus explicaciones.
- Los errores están en ordenados por el número del error y adjunto el nombre macro del error.


CÓDIGO/ERROR MACRO
SIGNIFICADO
10004 - WSAEINTR
Se ha llamado a la función de interrupción.
Una operación bloqueante ha sido interrumoida por una llamada a WSACancelBlockingCall.
10013 - WSAEACCES
Permiso denegado.
Se ha echo un intento de acceder a un socket de una manera prohibida por sus permisos de acceso. Un ejemplo sería usar una dirección broadcast para hacer envios, sin tener el permiso broadcast ajustado con el uso de setsockopt(SO_BROADCAST).
10014 - WSAEFAULT
Dirección erronea.
El sistema a detectado una dirección de puntero inválido al intentar usar un argumento puntero de una llamada. Este error ocurre si la aplicación pasa un valur de puntero inválido, o si la dirección del buffer es muy pequeña. Por ejemplo, si el tamaño de un argumento que es una estructura sockaddr es menor que sizeof(struct sockaddr).
10022 - WSAEINVAL
Argumento inválido.
Se ha pasado un argumento inválido (por ejemplo, espeficificar un nivel inválido a la función setsockopt).
10024 - WSAEMFILE
Demasiados archivos abiertos.
Demasiados sockets. Cada implementación tiene un máximo de punteros a sockets disponibles, tanto globalmente, como por proceso o por tarea.
10035 - WSAEWOULDBLOCK
Recurso no disponible temporalmente.
Este error es devuelto por operaciones en sockets no bloqueantes que no pueden ser completadas inmediatamente, por ejemplo llamar a recv cuando no hay datos en la lista para ser leidos desde el socket. Es un error no fatal, y la operación puede ser intentada más tarde. Es normal que sea devuleto WSAEWOULDBLOCK como resultado de llamar a connect sobre un socted no bloqueante del tipo SOCK_STREAM, ya que debe pasar un tiempo para establecer la conexión.
10036 - WSAEINPROGRESS
Operación en marcha.
Una operación bloqueante está en ejecución en este momento. Los sockets de Windows permiten una única operación bloqueante por tarea (o hilo de ejecución), y si se realíza otra llamada la función fallará con este error.
10037 - WSAEALREADY
Operación aún en progreso.
Se ha intentado una operación sobre un socket no bloqueante que ya mantiene una operación en progreso.
10038 - WSAENOTSOCK
Operación con sockets sobre un no-socket.
Se ha intentado una operación en algo que no es un socket. O el parametro del controlador del socket no referencia un socket válido, o un miembro de un fd_set no es válido.
10039 - WSAEDESTADDRREQ
Se requiere dirección de destino.
una dirección requerida ha sido omitida en una operación del socket. Por ejemplo, este error será devuelto si se llama a sendto() con la dirección remota ADDR_ANY.
10040 - WSAEMSGSIZE
Mensaje muy largo.
El mensaje enviado en un socket (datagrama) es más largo que el buffer interno o algЗn otra limitacióСn de la red, o el buffer usado para recibir un datagrama es menor que el mismo datagrama.
10041 - WSAEPROTOTYPE
Tipo erroneo de protocolo para el socket.
Un protocolo a sido especificado en una llamada a una funcion con sockets, que no soportan la semantica del tipo de socket solicitado. Por ejemplo, el protocolo "ARPA Internet UDP" no puede especificarse con un socket de tipo SOCK_STREAM.
10042 - WSAEENOPROTOOPT
Mala opción del protocolo.
Una opción o nivel invalidos o no soportados fueron especificados en una llamada a getsockopt o setsockopt.
10043 - WSAEPROTONOSUPPORT
Protocolo no soportado.
El protocolo pedido no ha sido configurado en el sistema o no existe una implementación del mismo. Por ejemplo, una llamada con sockets pide un socket SOCK_DGRAM, pero especifica un protocolo de flujo ("stream").
10044 - WSAESOCKTNOSUPPORT
Tipo de socket no soportado.
El soporte para el socket especificado, no existe en esta familia de direcciones. Por ejemplo, el tipo opcional SOCKET_RAW puede ser seleccionado en una llamada con sockets, y la implementacion no soportar socket SOCK_RAW en absoluto.
10045 - WSAEOPNOTSUPP
Operación no soportada.
La operación intentada no es soportada por el tipo de objeto referenciado. Normalmente esto ocurre cuando el descriptor de un socker que no puede soportar esta operación, por ejemplo, tratar de aceptar una conexión en un socket de datagramas.
10046 - WSAEPFNOSUPPORT
Familia de protocolos no soportada.
La familia de protocolos no ha sido configurada en el sistema o no existe una implementación para ella. Tiene un significado diferente a WSEAFNOSUPPOT pero es intecambiable en la mayoria de los casos, y todas las funciones de Sckets de Windows que devuelven uno de ellos especifican WSAEAFNOSUPPORT.
10047 - WSAEAFNOSUPPORT
La familia de la dirección es incompatible con el protocolo.
Se ha usado una dirección incompatible con el protocolo de la petición. Todos los sockets son creados con una "familia de direcciones" asociada (ej. AF_INET para protocolos de Internet) y un tipo genérico de protocolo (ej. SOCK_STREAM). Se devolverá este error si se ha especificado un protocolo incorrecto explicitamente en la llamada al socket, o si una dirección de una familia incorrecta es usada para un socket.
10048 - WSAEADDRINUSE
Dirección en uso.
Solo un uso de cada dirección de socket (protocolo/dirección IP/puerto) es permitido habitualmente. Este error ocurre cuando una aplicación pretende adjuntar (bind) un socket a una IP/puert que está ya en uso por un socket existente, o un socket que no ha sido cerrado debidamente, o un socket en proceso de cerrarse.
10049 - WSAEADDRNOTAVAIL
No se puede asignar la dirección requerida.
La dirección requerida no es válida en su contexto. Normalmente ocurre por que un intento de enlazar a una dirección que no es válida en la máquina local.
10050 - WSAENETDOWN
La red esta desconectada.
Una operación con sockets encontró una red inutilizable. Esto puede indicar un fallo serio de sistema de red, la interface de red o la red local.
10051 - WSAENETUNREACH
La red es inalcanzable.
Se ha intentado una operación con sockets hacia una red inalcanzable. Esto normalmente quiere decir que el software local no conoce ninguna ruta para alcanzar el host remoto.
10052 - WSAENETRESET
La red abandonó la conexión al reiniciar.
La conexión se ha roto, a causa de un fallo en el progreso de una operación "keep-alive".También puede ser devuelto por setsockopt si se ha imtemtado ajustar SO_KEEPALIVE en una conexión que ya ha fallado.
10053 - WSAECONNABORTED
Conexión abortada.
EL software ha causado el cierre de la conexión. Una conexión ya establecida, ha sido cerrada por el software del host, posiblemente a causa de haber pasado el tiempo máximo de conexión o a un error en el protocolo.
10054 - WSAECONNRESET
Conexión reiniciada por el peer.
Una conexión existente ha sido cerrada por el host remoto. (Se ha enviado un paquete con el bit reset). Esto ocurre normalmente cuando una aplicación en el host remoto es apagada de repente o el host es reiniciado. Este error tambíen puede ocurrir si una conexión "keep-alive" es cerrada al detectar un fallo mientras se realizan una o más operaciones.
10055 - WSAENOBUFS
No hay espacio de buffer disponible.
Una operación con sockets no puede ser realizada a causa de que el sistema no tiene suficiente espacio de buffer o porque la cola esta llena.
10056 - WSAEISCONN
El socket ya está conectado.
Se ha requerido una conexión en un socket ya conectado. Algunas implementaciones también devuelven este error si sendto es llamado en un socket SOCK_DGRAM conectado (Para SOCK_STREAM el par∓aacute:metro en sendto es ignorado, mientras otras implementaciones tratan esto como un suceso legal.
10057 - WSAENOTCONN
El socket no esta conectado.
Una petición para mandar o recibir datos no esta permitida porque el socket no está conectadoy ( al enviar o recibir un datagrama usando sendto ) no se ha especificado una dirección. Cualquier otro tipo de operación podria también devolver este error - por ejemplo, setsockopt, ajustando SO_KEEPALIVE si la conexión se ha reiniciado.
10058 - WSAESHUTDOWN
No puede enviarse despues de cerrar el socket.
Una petición para enviar o recibir datos no fue permitida porque el socket habia sido cerrado mediante una llamada anterior. Llamando a shutdown se pide un cierre parcial del socket, lo que es una señal de que enviar o recibir o ambas cosas ha sido descontinuado.
10060 - WSAETIMEDOUT
Timeout de conexión.
Ha fallado un intento de conexión por que la otra parte de la conexión no respondio despues de un periodo de tiempo, o la conexión establecida ha fallado, por que el host conectado no ha respondido. Verifique que su ISP no este bloqueando los puertos, es muy común este error en esto casos.
10061 - WSAECONNREFUSED
Conexión rechazada.
No se puede crear una conexión porque la máquina a la que se ha echo la petición la ha rechazado activamente. Esto se produce normalmente al tratar de conectarse a un servicio que está inactivo (ej. no hay un servidor funcionando) o porque nuestra conexión viola las normas de seguridad del host (firewall, tcp-wrappers). Verifique que su ISP no este bloqueando los puertos, es muy común este error en esto casos.
10065 - WSAEHOSTUNREACH
No route to host.
Se ha tratado de conectar a un host inalcanzable. (Ver WSAENETUNREACH) Este problema se da, por ejemplo, cuanto la pasarela (gateway) de una red interna o un roter que da acceso a esa pasarela están apagados, mientras los ordenadores de esa red tratan de alcanzar un host en la red externa.
10067 - WSAEPROCLIM
Demasiados procesos.
Una implementación de sockets de windows puede tener un limite en el número de aplicaciones que pueden usarla simultaneamente. WSAStartup puede fallar con este error si se alcanza este límite.
10091 - WSASYSNOTREADY
El subsistema de red no esta disponible.
This error is returned by WSAStartup if the Windows Sockets implementation cannot function at this time because the underlying system it uses to provide network services is currently unavailable. Users should check: that the appropriate Windows Sockets DLL file is in the current path, that they are not trying to use more than one Windows Sockets implementation simultaneously. If there is more than one WINSOCK DLL on your system, be sure the first one in the path is appropriate for thenetwork subsystem currently loaded. The Windows Sockets implementation documentation to be sure all necessary components are currently installed and configured correctly.
10092 - WSAVERNOTSUPPORTED
WINSOCK.DLL version out of range.
The current Windows Sockets implementation does not support the Windows Sockets specification version requested by the application. Check that no old Windows Sockets DLL files are being accessed.
10093 - WSANOTINITIALISED
No se a realizado un WSAStartup correcto aún.
O la aplicación no ha ejecutado la función WSAStartup o esta ha fallado. La aplicación podria estar accediendo a un socket que la tarea activa actual no posee (p.ej: intentar compartir un socket entre dos tareas), o WSAStartup ha sido llamado demasiadas veces.
10094 - WSAEDISCON
Graceful shutdown in progress.
Returned by WSARecv and WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence..
11002 - WSATRY_AGAIN
Non-authoritative host not found. This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. A retry at some time later may be successful.
11003 - WSANO_RECOVERY
Este es un error no recuperable.
This indicates some sort of non-recoverable error occurred during a database lookup. This may be because the database files (e.g. BSD-compatible HOSTS, SERVICES or PROTOCOLS files) could not be found, or a DNS request was returned by the server with a severe error.
11004 - WSANO_DATA
El nombre es válido, pero no hay una entrada de datos del tipo requerido.
El nombre requerido es válido y fue encontrado en la base de datos, pero no tiene los datos asociados correctos que están siendo resueltos (N. del T.: en el contexto de la resolución de nombres de dominio). El ejemplo usual para este error seria una resolución es un intento de traducción de un nombre de host a dirección (IP) que use DNS (mediante gethostbyname o WSAAsyncGetHostByName), donde se devuelva una entrada MX pero ninguna entrada A - indicando que el host existe pero no es directamente alcanzable.

LOS SIGUIENTES ERRORES DEPENDERÁN DEL SISTEMA OPERATIVO

WSA_INVALID_HANDLE
El manejador del objeto de eventos es invalido.
Una aplicacion intentó usar un objeto de evento, pero el manejador no es válido.
WSA_INVALID_PARAMETER
Uno o más parametros son inválidos.
Una aplicación ha usado un Socket de Windows que mapea directamente con una función de la API de Win32. La función Win32 esta indicando un problema con unos o más parámetros.
WSAINVALIDPROCTABLE
Tabla de procedimientos inválida desde un proveedor de servicios.
Un proveedor de servicios, devolvió una tabla de procedimientos invalida para WS2_32.DLL. ( Normalmente es a causa de que uno o más de los punteros a funciones son nulos (NULL=0x00) ).
WSAINVALIDPROVIDER
Número de versión erroneo para el proveedor de servicios.
El proveedor de servicios devolvio un número de versión distinto de 2.0.
WSA_IO_INCOMPLETE
Objeto de evento de entrada/salida superpuesto ("Overlapped") no esta en estado señalado.
La aplicación intentó determinar el estado de una operación sobrepuesta ("overlapped") que aún no ha sido completada. Aplicaciones que usen WSAGetOverlappedResult (con el ajuste fWait como falso) en modo "polling" para determinar cuando una operación superpuesta se ha completado recibirán este error hasta que la operación se complete.
WSA_IO_PENDING
Operaciones superpuestas (Overlapped) se completaran más tarde.
La aplicación ha iniciado una operación superpuesta ("Overlaped") que no puede completarse inmediatamente. Una indicación será dada más tarde cuando la operación haya sido completada.
WSA_NOT_ENOUGH_MEMORY
Memoria disponible insuficiente (no hay memora libre).
Una aplicación ha usado un Socket de Windows que mapea directamente con una función de la API de Win32. La función Win32 esta indicando que faltan los recursos de memoria requeridos.
WSAPROVIDERFAILEDINIT
Unable to initialize a service provider.
Either a service provider's DLL could not be loaded (LoadLibrary failed) or the provider's WSPStartup/NSPStartup function failed.
WSASYSCALLFAILURE
System call failure.
Returned when a system call that should never fail does. For example, if a call to WaitForMultipleObjects fails or one of the registry functions fails trying to manipulate the protocol/namespace catalogs.
WSA_OPERATION_ABORTED
Overlapped operation aborted.
An overlapped operation was canceled due to the closure of the socket, or the execution of the SIO_FLUSH command in WSAIoctl.