From what you say only WinSocks would spring to mind as to the best protocol to use. Its the fastest and most powerful available and it gives you the most control over what you want it to do, the only problem being that its not the easiest to program. I'm just finding out how hard just now

For me the biggest helps have been looking through the source code of FileZilla, CodeGuru and Codeproject. Also an amazing help has been.

http://www.cisco.com/univercd/cc/td/...k/sklibfun.htm

Which is basically a huge FAQ for sockets coding. Hope it helps a little