This implementation has some additional properties vs SocksServer
- start method does several retries to open server socket
- start method is not returned until server socket is opened and ready to accept connection
- stop method tries to close all server and client sockets