C# network programming tutorial. Socket, TCP, UDP