TODO: handle input
TODO: recycle
TODO: swallow input ( recycle only after input close )
TODO: find a way to inject an OutputBuffer, or interecept close() -
so we can send FIN in the last data packet.