well its a garbage collection question as well.

After TcpClient.Close() I take it the garbage collector does its job and removes it from memory etc.

or am I wrong?

(Chris128 put your handdown and let somebody else answer )