libtcp++ 0.1.2 review

by on

libtcp++ is a C++ class library to facilitate the creation of TCP/IP clients and servers

License: Freeware
File size: 67K
Developer: Sasha Pachev
0 stars award from

libtcp++ is a C++ class library to facilitate the creation of TCP/IP clients and servers. libtcp++ has three classes, TcpClient, TcpServer and TcpIpRuleSet.

TcpServer has build it logging capability peer detection method, and IP-based access control in addition to regular server functionality.

TcpClient supports a user specified timeout on connect(), nice for port/host scanning, and other situations when you may be connecting to a dead host or a firewalled port.

a C++ compiler on a Unix platform with STL support to the exent of GCC 2.7,
a reasonably recent version GCC itself is the best compiler to compile it on.
The library will cleanly compile on Linux and BSD with g++. Other configurations have not yet been tested. You may need to change a few lines to make it work on another platform/compiler. Please let me know what you did to make it work in that case.


gunzip -c libtcp++*.tar.gz | tar xvf -
cd libtcp++-*
make install



to link use -ltcp++

The use of the client should be pretty obvious from the header file and the test example in

The same applies to the server (see ), but one thing requires explanation:

to write your own server, inherit from TcpServer and implement handle_client(int sock_fd)
the server will listen on the port specified in the constructor and fork when connection is made calling your implementation of handle_client() see source for more details

To use IP access control, after instantiating TcpServer call add_ip_rule(netnum, netmask) of each rule. Use netmask of for a single host, and its IP for netnum. Both netnum and netmask are C string representations of IP addresses/masks, not the 4-byte arrays. They will be parsed by inet_aton().

After setting up all the rules with add_ip_rule(), activate them with enable_access_control(). After you have called enable_access_control() all connections will be denied except those coming from host that match one of the rules you have added. You can disable it with disable_access_control()

libtcp++ 0.1.2 search tags