There are two kinds of SOCKS proxy protocols, SOCKS4, and the more sophisticated SOCKS5 protocol. Both protocols are used by a proxy server to route network packets between a client and a server and can be used with any TCP and/or UDP application. SOCKS5 also permits anonymous UDP connections as well as user authentication, so only authorized users can access the socks proxy server.
There are programs that allow any existing networked software to connect, via SOCKS, to external networks by SOCKSifying them. By SOCKSifying them I mean setting up existing networked software so their requests are automatically redirected through the SOCKS proxy server. This can be accomplished by purchasing software like, proxifier (Win, Mac), or proxycap (Win, Mac). You can find this kind of software free on the Internet for Windows at Freecap, for the Mac at Socat, and for Linux, BSD, and Solaris at Dante