Naughter Software Logo

w3mfc.gif (1165 bytes)SocksSvc 1.06 A collection of MFC classes to implement a Socks Server

Welcome to SocksSvc, a collection of MFC classes to implement a simple Socks server.

The idea behind SocksSvc was originally to learn about the Socks protocol and how it is implemented on Win32.

For detailed information about the Socks Protocol you should read RFC 1928 (Socks 5), RFC 1929 (Username / Password authentication for Socks 5) and the Socks 4 specification.

Please note that SocksSvc is only meant as a simple tutorial on writing server side TCP applications and it should not be treated as code which is an enterprise grade socks proxy. For that I would suggest the user look at something like Squid which is a HTTP proxy or Dante.

 

The classes which constitute SocksSvc are:

CSocksServerSettings: This class contains the settings which are used to configure the Socks server. Example member variables in this class include the port to listen on and the valid protocols to support. If you are developing a stand alone socks server based on SocksSvc, you could for example store all the variables for the CSocksServerSettings instance in an ini file or in the registry.

CSocksServer: This is the actual class which implements the Socks server. It has a number of very simple functions to allow you to control the state of the socks server such as Start and Stop. Internally a background thread is spun off to handle the client connections.

CSocksClient: This class is used in the CSocksServer class to handle client connections. It handles the parsing of client requests and returning the appropriate response. A number of virtual functions are provided to allow end user customisation.

Various other help classes and structures are provided including a number of classes I have already developed independent of SocksSvc.

 

The enclosed zip file contains the SocksSvc source code and a simple VC 2013 console based application which implements a simple socks server.

 

Copyright

 

Updates

V1.06 (10 February 2017)

V1.05 (15 January 2007)

V1.04 (13 February 2006)

V1.03 (7 September 2005)

V1.02 (13 January 2004)

V1.01 (3 March 2003)

V1.0 (19 February 2003)