The SOCK library maintains a list of free and occupied sockets. This is kept in the sock_in_use array. You can see this array's contents under the debugger. To get a free socket (number), call sock_get() and it will return a socket number, which will now be marked as used. The function will return 255 if there are no free sockets left, so watch out for this number!
When calling sock_get(), you can supply a meaningful short name of the caller. For example, if the socket is to be used for TELNET-style communications with the device, set the signature to "TLNT". The sock_user_signature array keeps the signatures left by sock_get() callers. Observing this array's contents under the debugger will provide a clear picture of who is using which socket. The signature of free sockets is "-". Note that SOCK_MAX_SIGNATURE_LEN defines maximum signature length and the default value is 0. Set this to anything above 0 to be able to observe the signatures. You can set it back to 0 when the debugging process is over.
Another way to observe the operation of the library in the debug mode is by adding #define SOCK_DEBUG_PRINT 1 to the defines section of the global.tbh file of your project. A wealth of status information will be printed in the console pane as the SOCK library operates.
To release the socket, call sock_release() . This will mark the socket as free and the next caller of the sock_get() will have a chance to reuse this socket number. Additionally, the socket will be "cleaned up for reuse". Any socket connection in progress will be discarded (with sock.discard ) and each property will be returned to its original, post-reset value.
Sock_who_uses() returns a signature left by the specified socket's user. This function doesn't have to be used and exists only for convenience.