Make all test methods public.
Start the thread.
Fix the assertions.
Add a name to Logger.
Add the UnbufferedSocketStream class for use in place of NetworkStream.
Add an optional timeout for connection attempts.
Make conversion of the body to a string optional.
Add the IsClosed extension method.
Fix the buffer size.
Fix the overriden method signatures.
Ignore socket timeouts.
Fix headers.
Thoroughly re-work sockets and threading. Shutdown is now clean. All tests pass.
Cleanup.
Add project info.
Ignore userprefs.