Add fake tcp server for testing

Renamed Socket class to make it easier to distinguish custom socket.
Add work around to get cancel working.

Add a listener to the cancel token.