First, about getting files/directories in directory: there is one problem you should be aware of. See this discussion:
Directory.Get.Files search pattern problem[
^]. You will find a solution as well. This is all about information on file structure on your server.
Find some useful ideas about networking application design:
Multple clients from same port Number[
^],
how i can send byte[] to other pc[
^],
Communication b/w two Windows applications on LAN.[
^].
Sorry, some models of networking I mentioned are not relevant to your case. In you case I advice you stick to your level of choice:
TcpListener
/
TcpClient
level. Classical remoting or WCF (self-hosted) also can be considered.
From the above references you will see that one of the keys to successful networking design is threading. This is a useful collection of my references to my past Answers on the topic:
How to get a keydown event to operate on a different thread in vb.net[
^];
This is a very useful thread wrapper:
How to pass ref parameter to the thread[
^].
—SA