C# Receiving a file from a remote client
===

I have an asynchronous socket server that up until now has just receive simple requests with relatively small payloads.  I need to add the ability to receive files along with the request, but am not sure of the best way to do it.  To complicate matters, some connecting clients are C#, others are VB6 so the mechanism must be amenable to support a diverse client set.

 - does .NET have a native mechanism to accomplish this?
 - can I have my clients just turn the file into a byte array and pass that into their existing TCP stream, to be rebuilt at the server end?
 - should I just let my server behave like an FTP server?

If anyone can point me to a good way to do this it would be much appreciated.