An MFC class to encapsulate the "Finger" protocol
Welcome to CPJNFinger, A very
simple MFC class to encapsulate the Finger protocol. Finger for those not familiar with all the internet protocols is
the protocol used to retrieve information about a systems users. The information
returned is a simple string and can be used for any purposes. For example the
USGS (United States Geological Survey) use Finger to allow up to date Earthquake
data to be retrieved.
For detailed information about the Finger, you should read RFC
1288. You can find numerous Web Servers which carry these documents by
doing an internet search for "RFC" and
The sample app provided with the code implements a very
simple GUI Finger client, a definite improvement over the console version
provided by MS on NT.
- Simple and clean C++ interface.
- The interface provided is synchronous which
provides an easier programming model than using asynchronous sockets.
- The code does not rely on the MFC socket
classes. These classes have a number of shortcomings, one of which causes problems when
they are used in NT services.
- The code can be used in a console
application without any problems (Again this is not the case for the MFC socket classes).
- A configurable timeout for the connection
can be set through the main class method.
zip file contains the
CPJNFinger source code and a simple GUI based Finger client based on it.
- You are allowed to include the source code in
any product (commercial, shareware, freeware or otherwise) when your product
is released in binary form.
- You are allowed to modify the source code in
any way you want except you cannot modify the copyright details at the top
of each module.
- If you want to distribute source code with
your application, then you are only allowed to distribute versions released
by the author. This is to maintain a single distribution point for the
V1.01 (17 October 1999)
- The value returned from GetLastError is now
preserved across calls to CPJNFingerSocket::Close.
V1.02 (3 November
- Updated copyright messages
- Simplified the code in CPJNFinger::ReadResponse. Thanks to
Clarke Brunt for reporting this issue.
V1.03 (14 April 2006)
- Updated copyright details.
- Addition of a CPJNFINGER_EXT_CLASS macro which makes the class easier to
use in an extension DLL.
- Renamed the class to CPJNFinger.
- Module has been renamed to PJNFinger
- Now uses the author's CWSocket sockets wrapper class. This now allows
the code to support connecting via Socks4, Socks5 and HTTP proxies.
- Updated documentation to use the same style as my web site.
- Did a spell check of the documentation.
- Fixed a graceful disconnect problem in ReadResponse method.
- Fixed a issue in CPJNFinger::Finger when code is compiled with /Wp64
V1.04 (28 December 2006)
- Updated the code to compile cleanly on VC 2005
- Code now uses newer C++ style casts instead of C style casts.
- Provided a GetLastError method which returns the last error which the
code encountered. This is required because due to C++ destructors, the value
stored in GetLastError can be destroyed in the CPJNFinger methods.
8 February 2011
- Please note that this code is now considered obsolete as the vast majority of sites on the internet no longer offer the
service and I will not be updating the code going forward.