Here is a chart of the symbolic error names (for ErrNo or SockErrNo) and what they signify. The symbolic error name is in the left column. And what it signifies is in the right column. For example, if some RexxSock function sets the value of ErrNo to the string "EMFILE", this means that the function failed because you have too many sockets open. Whenever an RexxSock function sets the value of ErrNo to 0, this means that the function succeeded.

0 A successful completion of the RexxSock function.
EINTR Interrupted system call.
EBADF Bad file number.
EACCES Permission denied.
EFAULT Bad address.
EINVAL Invalid argument.
EMFILE Too many files/sockets open.
EWOULDBLOCK Blocking operation on non-blocking socket.
EINPROGRESS Operation now in progress.
EALREADY Operation already in progress.
ENOTSOCK Socket operation on non-socket.
EDESTADDRREQ Destination address required.
EMSGSIZE Message too long.
EPROTOTYPE Protocol wrong type for socket.
ENOPROTOOPT Option not supported by protocol.
EPROTONOSUPPORT Protocol not supported.
ESOCKTNOSUPPORT Socket type not supported.
EOPNOTSUPP Operation not supported on socket.
EPFNOSUPPORT Protocol family not supported.
EAFNOSUPPORT Address family not supported by protocol family.
EADDRINUSE Address already in use.
EADDRNOTAVAIL Can't assigned requested address.
ENETDOWN Network is down.
ENETUNREACH Network is unreachable.
ENETRESET Network dropped connection on reset.
ECONNABORTED Software caused connection abort.
ECONNRESET Connection reset by peer.
ENOBUFS No buffer space available.
EISCONN Socket is already connected.
ENOTCONN Socket is not connected.
ESHUTDOWN Can't send after socket shutdown.
ETOOMANYREFS Too many references: can't splice.
ETIMEDOUT Connection timed out.
ECONNREFUSED Connection refused.
ELOOP Too many levels of symbolic links.
ENAMETOOLONG File name too long.
EHOSTDOWN Host is down.
EHOSTUNREACH No route to host.
ENOTEMPTY Directory not empty.
EPROCLIM Too many processes.
EUSERS Too many users.
EDQUOT Disc quota exceeded.
ESTALE Stale NFS file handle.
EREMOTE Too many levels of remote in path.
EDISCON Other end disconnected.
SYSNOTREADY Underlying network subsystem not ready.
VERNOTSUPPORTED Can't find useful sockets library. Could either be missing the sockets library, or the version on your system is not sufficient for RexxSock's purposes.
NOTINITIALISED Sockets library not initialized.
HOSTNOTFOUND Can't find the named computer on the network.
TRYAGAIN Can't find computer to connect to. Try again.
ERROR xxx Unindentified/unknown error in the sockets library. xxx is the actual error number. Note that the meaning of this will depend upon what sockets library RexxSock is using.
RexxVariablePool 1 REXX variable was not initialized prior to an RexxSock function call.
RexxVariablePool 8 Bad/invalid REXX variable name.
RexxVariablePool 16 Out of memory (when trying to set/fetch the value of some REXX variable).
RexxRegisterFunctionDll 10 There is already some other function library that has a function registered by the same name as some RexxSock function.
RexxRegisterFunctionDll 20 Out of memory (when registering an RexxSock function).
RexxRegisterFunctionDll 40 Can't locate RexxSock function library. It must be named "REXXSOCK.DLL", and be in some directory that your operating system searches for libraries. You may see this error while calling RXFUNCADD().
RexxRegisterFunctionDll 50 The RexxSock function is not contained within RexxSock.dll.
OS-specific xxx This is any error that the operating system (ie, not the sockets library, nor the REXX interpreter, per se) returns. xxx is the actual error number. Note that the meaning of this will depend upon what operating system RexxSock is being run.

If the particular sockets library (used by RexxSock) returns some error that does not translate to one of above symbolic error names, then ErrNo is set to "ERROR xxx" where "xxx" is the particular error number that the sockets library returned. Note that this number will be a proprietary value returned by whatever sockets library is in use upon your operating system. So, its meaning is proprietary. For such an error, SockErrMsg will return the same.

There may be some operating system specific errors that occur. In that case, ErrNo is set to "OS-specific xxx" where xxx is the actual error number. SockErrMsg will attempt to fetch a meaningful error message from the operating system.