The framework supports plugging filters into the TCP stream 'below' the user code callback level. This is a very powerful feature as it allows you to manipulate the byte stream as it flows into and out of your program. This is very useful as it means that you can transparently add services to your servers and clients without needing to change the 'business logic'. We have used this to provide compression and encryption on a TCP stream whereby a single server can handle both clear and encrypted/compressed traffic on different ports without any changes to the business logic.
Multiple filters can be pushed onto the stream and the data flows through each in turn. Each filter can manipulate the bytes or conntection information and can even completely swallow a call (i.e. not pass it on) or generate its own calls (i.e. pass data that it generates or produces to the rest of the filter chain at a time of its own choosing and not necessarilly in response to incoming data).