Creating a Multi-User TCP Chat Application
 shows how to
write asynchronous TCP socket applications using .NET.

The .NET support for socket-based programming within
Visual Basic is dramatically improved over what we had in Visual
Basic 6. So even though we approach the programming issue somewhat
differently, it is worth it due to all the new capabilities at our
disposal.
[MSDN]