C# - reduce number of server exceptions

The current server implementation reads in a loop until the client closes, at which point an exception is thrown by the processor/transport and caught by the server.

I solve this by creating a smarter peek functionality in TTransport which reads and caches a byte from the underlying transport and reinserts it in ReadAll.