Networking Operations Errors

Version 3
    Share:|

    Overview

    BMC AppSight allows tracing networking operations. These operations will provide insight into the network activity of the traced application that uses Winsock.

    img1.png

     

    These operations will return with different return values that don’t necessarily represent a problem. Those errors will be displayed in the Comment tab, for example:

    img2.png

    This article describes the different return values you may encounter in each operation sub-group and possible reasons for them. Use the following reference table to access the operation type you are interested in:

    Accept connection

    This operation permits an incoming connection attempt on a socket.

    Possible Errors

    • The socket is marked as nonblocking and no connections are present to be accepted. (Error code 10035)
      This error is returned from operations on nonblocking sockets that cannot be completed immediately. It is a nonfatal error, and the operation should be retried later. It is normal for this to be reported as the result from calling connect on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established.
    • The referenced socket is not a type that supports connection-oriented service. (Error code 10045)
      The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation is trying to accept a connection on a datagram socket.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
    • No buffer space is available. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • The queue is nonempty upon entry to accept and there are no descriptors available. (Error code 10024)
      Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process, or per thread.
    • The listen function was not invoked prior to accept. (Error code 10022)
      Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with the this error.
    • A blocking Windows Sockets 1.1 call was canceled through WSACancelBlockingCall. (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • The addrlen parameter is too small or addr is not a valid part of the user address space. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small. For instance, if the length of an argument, which is a sockaddr structure, is smaller than the sizeof(sockaddr).
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Associate address

    This operation associates a local address with a socket.

    Possible Errors

    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
    • Not enough buffers available, too many connections. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • The socket is already bound to an address. (Error code 10022)
      Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The name parameter contains an incorrect address format for the associated address family. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • The specified address already in use.  (Error code 10048)
      Typically, only one usage of each socket address (protocol / IP address / port) is permitted. This error occurs if an application attempts to associate a socket to an IP address / port that has already been used for an existing socket, or a socket that was not closed properly, or one that is still in the process of closing. For server applications that need to associate multiple sockets to the same port number, consider using setsockopt (SO_REUSEADDR). Client applications usually do not to associate addresses at all— connect chooses an unused port automatically.
    • The specified address is not a valid address for this machine. (Error code 10049)
      The requested address is not valid in its context. This normally results from an attempt to associate to an address that is not valid for the local computer.
    • Permission denied. (Error code 10013)
      An attempt was made to access a socket in a way forbidden by its access permissions. This could occur when associating an address (on Windows NT 4 SP4 or later), another application, service, or kernel mode driver is associated to the same address with exclusive access. Such exclusive access is a new feature of Windows NT 4 SP4 and later, and is implemented by using the SO_EXCLUSIVEADDRUSE option.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • Successful WSAStartup not yet performed.  (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Associate window

    This operation requests Windows message-based notification of network events for a socket.

    Possible Errors

    • The specified destination is no longer reachable. (Error code 10051)
      A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.
    • The connection was terminated due to a time-out or other failure. (Error code 10053)
      An established connection was aborted by the software in your host computer, possibly due to a data transmission time-out or protocol error.
    • The connection was reset by the remote side. (Error code 10054)
      An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, the host or remote network interface is disabled, or the remote host uses a hard. This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress.
    • Attempt to connect timed out without establishing a connection. (Error code 10060)
      A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond.
    • The socket is not connected. (Error code 10057)
      The operation failed because the socket is not connected and no address was supplied.
    • No buffer space is available. The socket cannot be connected. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • No more file descriptors are available. (Error code 10024)
      Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process, or per thread.
    • The socket is already connected. (Error code 10056)
      A connect request was made on an already-connected socket.
    • The namelen parameter is incorrect. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • The network cannot be reached from this host at this time. (Error code 10051)
      A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.
    • The attempt to connect was forcefully rejected. (Error code 10061)
      No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.
    • Addresses in the specified family cannot be used with this socket. (Error code 10047)
      An address incompatible with the requested protocol was used. All sockets are created with an associated address family (that is, AF_INET for Internet Protocols) and a generic protocol type (that is, SOCK_STREAM). This error is returned if an incorrect protocol is explicitly requested in the socket call, or if an address of the wrong family is used for a socket.
    • The descriptor is not a socket. (Error code 10038)
      The operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • One of the specified parameters was invalid or the socket is already bound to an address. (Error code 10022)
      Some invalid argument was supplied. In some instances, it also refers to the current state of the socket.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Close socket

    This operation closes an existing socket.

    Possible Errors

    • The socket is marked as nonblocking and SO_LINGER is set to a nonzero time-out value. (Error code 10035)
      Enabling SO_LINGER with a nonzero (Graceful close) time-out interval on a nonblocking socket is not recommended. In this case, the operation to close the socket will fail with this error if it cannot be completed immediately. The socket handle is still valid, and the disconnection is not initiated. The application must call close the socket again.
    • The (blocking) Windows Socket 1.1 call was canceled through WSACancelBlockingCall. (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Connect

    This operation establishes a connection to a specified socket or establishes a connection to another socket application; exchanges connection data, and specifies required quality of service based on a specified structure.

    Possible Errors

    • Attempt to connect datagram socket to broadcast address failed because setsockopt option SO_BROADCAST is not enabled. (Error code 65555)
      For connectionless sockets, the socket address can indicate any valid address, including a broadcast address. However, to connect to a broadcast address, a socket must use setsockopt to enable the SO_BROADCAST option. Otherwise, the connection attempt will fail with this error.
    • The socket is marked as nonblocking and the connection cannot be completed immediately. (Error code 10035)
      This error is returned from operations on nonblocking sockets that cannot be completed immediately. It is a nonfatal error, and the operation should be retried later. It is normal for this error to be reported as the result from connecting on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established.
    • Attempt to connect timed out without establishing a connection. (Error code 10060)
      A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • No buffer space is available. The socket cannot be connected. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • The network cannot be reached from this host at this time. (Error code 10051)
      A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.
    • The socket is already connected. (Error code 10056)
      A connect request was made on an already-connected socket.
    • The parameter s is a listening socket. (Error code 10022)
      The socket was previously associated to a local service name to accept incoming connections. Once a socket is associated, it cannot be used for establishing an outbound connection.
    • The name or the namelen parameter is not a valid part of the user address space. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • The attempt to connect was forcefully rejected. (Error code 10061)
      No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.
    • Addresses in the specified family cannot be used with this socket. (Error code 10047)
      An address incompatible with the requested protocol was used. All sockets are created with an associated address family (that is, AF_INET for Internet Protocols) and a generic protocol type (that is, SOCK_STREAM). This error is returned if an incorrect protocol is explicitly requested in the socket call, or if an address of the wrong family is used for a socket.
    • The remote address is not a valid address (such as ADDR_ANY). (Error code 10049)
      The requested address is not valid in its context. This normally results from an attempt to bind to an address that is not valid for the local computer. This can result from connecting when the remote address or port is not valid for a remote computer (for example, address or port 0).
    • A nonblocking connect call is in progress on the specified socket. (Error code 10037)
      Until the connection attempt completes on a nonblocking socket, all subsequent calls to connect on the same socket will fail with this error.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with is error.
    • The blocking Windows Socket 1.1 call was canceled through WSACancelBlockingCall. (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • The socket's local address is already in use. (Error code 10048)
      Typically, only one usage of each socket address (protocol/IP address/port) is permitted. This error occurs if an application attempts to bind a socket to an IP address/port that has already been used for an existing socket, or a socket that was not closed properly, or one that is still in the process of closing.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Create socket

    This operation creates a socket that is bound to a specific service provider or to a specific transport-service provider.

    Possible Errors

    • The specified socket type is not supported in this address family. (Error code 10044)
      The support for the specified socket type does not exist in this address family. For example, the optional type SOCK_RAW might be selected when creating a socket, and the implementation does not support SOCK_RAW sockets at all.
    • The specified protocol is the wrong type for this socket. (Error code 10041)
      A protocol was specified in the operation call that does not support the semantics of the socket type requested. For example, the ARPA Internet UDP protocol cannot be specified with a socket type of SOCK_STREAM.
    • The specified protocol is not supported. (Error code 10043)
      The requested protocol has not been configured into the system, or no implementation for it exists. For example, a create socket operations requests a SOCK_DGRAM socket, but specifies a stream protocol.
    • No buffer space is available. The socket cannot be created. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • No more socket descriptors are available. (Error code 10024)
      Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process, or per thread.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The specified address family is not supported. (Error code 10047)
      An address incompatible with the requested protocol was used. All sockets are created with an associated address family (that is, AF_INET for Internet Protocols) and a generic protocol type (that is, SOCK_STREAM). This error is returned if an incorrect protocol is explicitly requested in the create socket operations, or if an address of the wrong family is used for a socket.
    • The network subsystem or the associated service provider has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.
    • The service provider returned an invalid or incomplete procedure table to the WSPStartup. (Error code 10104)
      A service provider returned a bogus procedure table to Ws2_32.dll. (This is usually caused by one or more of the function pointers being null.)
    • The service provider returned a version other than 2.2.  (Error code 10105)
      A service provider returned a version number other than 2.0.
    • lpProtocolInfo argument is not in a valid part of the process address space. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • Invalid parameter. (Error code 10022)
      When a special protocol structure is passed as an input parameter to create the socket, the flag parameters are ignored. Such a structure may only be used once, otherwise this error will result.

    Get host info

    This operation retrieves host information corresponding to a host name from a host database.

    Possible Errors

    • A blocking Windows Socket 1.1 call was canceled through WSACancelBlockingCall. (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • The name parameter is not a valid part of the user address space. (Error code 10014)
      The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • Valid name, no data record of requested type. (Error code 11004)
      The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a host name-to-address translation attempt which uses the DNS (Domain Name Server). An MX record is returned but no A record—indicating the host itself exists, but is not directly reachable.
    • A nonrecoverable error occurred. (Error code 11003)
      This indicates that some sort of non-recoverable error occurred during a database lookup. This may be because the database files (for example, BSD-compatible HOSTS, SERVICES, or PROTOCOLS files) could not be found, or a DNS request was returned by the server with a severe error.
    • Nonauthoritative host not found, or server failure. (Error code 11002)
      This is usually a temporary error during host name 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.
    • Authoritative answer host not found. (Error code 11001)
      No such host is known. The name is not an official host name or alias, or it cannot be found in the database(s) being queried. This error may also be returned for protocol and service queries, and means that the specified name could not be found in the relevant database.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Initialize socket library

    This operation must be the first Windows Sockets function called by an application or module. It allows an application or module to specify the version of Windows Sockets required and retrieve details of the specific Windows Sockets implementation. The application or module can only issue further Windows Sockets functions after successfully calling this operation.

    Possible Errors

    • The lpWSAData is not a valid pointer. (Error code 10014)
      The pointer to the data structure that is passed to receive details of the Windows Sockets implementation is invalid.
    • Limit on the number of tasks supported by the Windows Sockets implementation has been reached. (Error code 10067)
      A Windows Sockets implementation may have a limit on the number of applications that can use it simultaneously. This operation may fail with this error if the limit has been reached.
    • A blocking Windows Sockets 1.1 operation is in progress. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The version of Windows Sockets support requested is not provided by this particular Windows Sockets implementation. (Error code 10092)
      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.
    • Indicates that the underlying network subsystem is not ready for network communication. (Error code 10091)
      This error is returned 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 the network subsystem currently loaded.
      • The Windows Sockets implementation documentation to be sure all necessary components are currently installed and configured correctly.

    Receive data

    This operation receives data from a connected or bound socket, or receives a datagram and stores the source address.

    Possible Errors

    • The virtual circuit was reset by the remote side executing a hard or abortive close.  (Error code 10054)
      The virtual circuit was reset by the remote side executing a hard or abortive close. The application should close the socket as it is no longer usable. On a UPD-datagram socket this error would indicate that a previous send operation resulted in an ICMP "Port Unreachable" message. If the socket is connection oriented and the remote side has shut down the connection gracefully, and all data has been received, the operation will complete immediately with zero bytes received. If the connection has been reset, the operation will fail with this error.
    • The connection has been dropped because of a network failure or because the peer system failed to respond. (Error code 10060)
      A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond.
    • The virtual circuit was terminated due to a time-out or other failure. The application should close the socket as it is no longer usable. (Error code 10053)
      An established connection was aborted by the software in your host computer, possibly due to a data transmission time-out or protocol error.
    • The socket has not been bound with bind, or an unknown flag was specified. (Error code 10022)
      The socket has not been bound with bind, or an unknown flag was specified, or MSG_OOB was specified for a socket with SO_OOBINLINE enabled or (for byte stream sockets only) len was zero or negative.
    • The message was too large to fit into the specified buffer and was truncated. (Error code 10040)
      If the datagram or message is larger than the buffer specified, the buffer is filled with the first part of the datagram, and this error is generated. For unreliable protocols (for example, UDP) the excess data is lost; for reliable protocols, the data is retained by the service provider until it is successfully read by calling recv with a large enough buffer.
    • The socket is marked as nonblocking and the receive operation would block. (Error code 10035)
      This error is returned from operations on nonblocking sockets that cannot be completed immediately, for example when no data is queued to be read from the socket. It is a nonfatal error, and the operation should be retried later.
    • The socket has been shut down; it is not possible to receive on a socket after shutdown has been invoked with how set to SD_RECEIVE or SD_BOTH. (Error code 10058)
      A request to receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. By calling shutdown a partial close of a socket is requested, which is a signal that sending or receiving, or both have been discontinued.
    • MSG_OOB was specified, but the socket is not stream-style such as type SOCK_STREAM. (Error code 10045)
      MSG_OOB was specified, but the socket is not stream-style such as type SOCK_STREAM, OOB data is not supported in the communication domain associated with this socket, or the socket is unidirectional and supports only send operations.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • The connection has been broken due to the keep-alive activity detecting a failure while the operation was in progress. (Error code 10052)
      The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The (blocking) call was canceled through WSACancelBlockingCall (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • The socket is not connected. (Error code 10057)
      A request to receive data was disallowed because the socket is not connected.
    • The buf parameter is not completely contained in a valid part of the user address space. (Error code 10014)
      The buffer for incoming data contains an invalid pointer address. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.
    • Overlapped I/O operation is in progress. (Error code 997)
      The application has initiated an overlapped operation that cannot be completed immediately. A completion indication will be given later when the operation has been completed.

    Send data

    This operation sends data on a connected socket or to a specific destination

    Possible Errors

    • The connection has been dropped, because of a network failure or because the system on the other end went down without notice. (Error code 10060)
      A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond.
    • The virtual circuit was reset by the remote side executing a hard or abortive close. (Error code 10054)
      The virtual circuit was reset by the remote side executing a hard or abortive close. The application should close the socket as it is no longer usable. On a UPD-datagram socket this error would indicate that a previous send operation resulted in an ICMP "Port Unreachable" message. If the socket is connection oriented and the remote side has shut down the connection gracefully, and all data has been received, the operation will complete immediately with zero bytes received. If the connection has been reset, the operation will fail with this error.
    • The virtual circuit was terminated due to a time-out or other failure. The application should close the socket as it is no longer usable. (Error code 10053)
      An established connection was aborted by the software in your host computer, possibly due to a data transmission time-out or protocol error.
    • The socket has not been bound with bind, or an unknown flag was specified, or MSG_OOB was specified for a socket with SO_OOBINLINE enabled. (Error code 10022)
      Some invalid argument was supplied as the socket. In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening.
    • The remote host cannot be reached from this host at this time. (Error code 10065)
      A socket operation was attempted to an unreachable host. This usually means the local software knows no route to reach the remote host.
    • The socket is message oriented, and the message is larger than the maximum supported by the underlying transport. (Error code 10040)
      A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram was smaller than the datagram itself.
    • The socket is marked as nonblocking and the requested operation would block. (Error code 10035)
      This error is returned from operations on nonblocking sockets that cannot be completed immediately. It is a nonfatal error, and the operation should be retried later.
    • The socket has been shut down. (Error code 10058)
      A request to send data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. By calling shutdown a partial close of a socket is requested, which is a signal that sending or receiving, or both have been discontinued.
    • MSG_OOB was specified, but the socket is not stream-style such as type SOCK_STREAM, OOB data is not supported in the communication domain associated with this socket. (Error code 10045)
      The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation is trying to accept a connection on a datagram socket.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • The socket is not connected. (Error code 10057)
      A request to send data was disallowed because the socket is not connected and (when sending on a datagram socket) no address was supplied.
    • No buffer space is available. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • The connection has been broken due to the keep-alive activity detecting a failure while the operation was in progress. (Error code 10052)
      The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress.
    • The buf parameter is not completely contained in a valid part of the user address space. (Error code 10014)
      The buffer, containing the data to be transmitted, contains an invalid pointer address. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • A blocking Windows Sockets 1.1 call was canceled through WSACancelBlockingCall. (Error code 10004)
      A blocking operation was interrupted by a call to WSACancelBlockingCall.
    • The requested address is a broadcast address, but the appropriate flag was not set. (Error code 10013)
      An attempt was made to access a socket in a way forbidden by its access permissions. An example is using a broadcast address for sending information without broadcast permission being set.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Send Request

    This operation sends a specified request to an HTTP server.

    Possible Errors

    • Overlapped I/O operation is in progress. (Error code 997)
      The application has initiated an overlapped operation that cannot be completed immediately. A completion indication will be given later when the operation has been completed.

    Socket listen

    This operation places a socket in a state in which it is listening for an incoming connection.

    Possible Errors

    • The referenced socket is not of a type that supports the listen operation. (Error code 10045)
      The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation is trying to accept a connection on a datagram socket.
    • The descriptor is not a socket. (Error code 10038)
      An operation was attempted on something that is not a socket. The socket handle parameter did not reference a valid socket.
    • No buffer space is available. (Error code 10055)
      An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
    • No more socket descriptors are available. (Error code 10024)
      Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process, or per thread.
    • The socket is already connected. (Error code 10056)
      A connect request was made on an already-connected socket.
    • The socket has not been bound with bind. (Error code 10104)
      Some invalid argument was supplied. In some instances, it also refers to the current state of the socket—for instance, calling accept on a socket that is not listening.
    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with the WSAEINPROGRESS error.
    • The socket's local address is already in use and the socket was not marked to allow address reuse with SO_REUSEADDR. (Error code 10048)
      Typically, only one usage of each socket address (protocol/IP address/port) is permitted. This error occurs if an application attempts to bind a socket to an IP address/port that has already been used for an existing socket, or a socket that was not closed properly, or one that is still in the process of closing.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or WSACleanup has been called too many times.

    Uninitialize socket library

    This operation terminates use of the networking module.

    Possible Errors

    • A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function. (Error code 10036)
      A blocking operation is currently executing. Windows Sockets only allows a single blocking operation—per- task or thread—to be outstanding, and if any other function call is made (whether or not it references that or any other socket) the function fails with this error.
    • The network subsystem has failed. (Error code 10050)
      A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself.
    • A successful WSAStartup call must occur before using this function. (Error code 10093)
      Either the application has not called WSAStartup or WSAStartup failed. The application may be accessing a socket that the current active task does not own (that is, trying to share a socket between tasks), or this operation has been called too many times.