Overview
========

These files contain a simple TCP/IPv6 client and server framework that
demonstrates the basic issues when writing IPv6-compatible TCP
programs.  The entire framework is primarily intended for
demonstration purposes but may also serve as the basis for simple
client and server programs.


Files
=====

tcp_open.c, tcp_open.h:  
    Contain a single function "tcp_open()", which behaves similar to
    open(2) except that it doesn't open a file but the client side of
    a TCP connection.
test_tcp_open.c
    Contains a simple demo how to use tcp_open().
tcp_server.c, tcp_server.h:
    Contains a simple forking TCP server framework; just write your
    own "connection handler" function and invoke tcp_server().
test_tcp_server.c:
    This is a simple demo how to use tcp_server().
logging_tcp_server.c
    If you want to do some basic logging of incoming connections, this
    should do for starters.
Makefile:
    A makefile that is known to work at least with GNU make.


Compilation Issues
==================

- You will probably need GNU make to use the makefile; instead of
  putting any serious effort in writing a makefile that works with all
  common variants of "make", I've decided to use GNU make because it
  is available on virtually all platforms.

- Some Unixen don't have the daemon(3) library function.  In this
  case, it is up to you to remove the line from tcp_server.c (and
  possibly detach the process "manually").

- I have tested the code on FreeBSD 6.2, Debian Sarge, Fedora Core 6
  and Solaris 10.U3.  It should work on other Unixen without problems;
  if it doesn't, please let me know.


Contact
=======

You can reach me at <contact .at. benedikt-stockebrand.de>.
