Unless you produce a kernel-mode driver you're not going to see much, if any, speed differences between various options. The network will always be the bottleneck, as various case studies have shown with SQL Server and IIS 6.
You can use System.Net.Sockets or the Win32 Winsock API and see a minimal speed difference but a huge ease-of-development difference when it comes to the System.Net.Sockets namespace, which is vastly easier to work with.
Remember: the BCL is there. Either use it or head back to unmanaged C++.