xtremean wrote (via email): i...need to be able send text strings, .jpg and .bmp file types OK, so this might not be the simplest solution for a "newbie".... that being said, here's what I would imagine doing if I were writing a custom application to do this kind of thing: On the client side you'll have some kind of form, possibly attached to a NotifyIcon (for ease of use, like an IM client) that allows the user to select a file (or files). Using the File and FileStream you open up the client file, establish a NetworkStream connection to the server using TcpClient and TcpListener and use NetworkStream and FileStream on the server side to read the stream and write it to a file. The server is going to listen on several ports for several incoming connections, each connection a TcpListener running on its own thread, so there would be the need to start each on its own, using Asynchronous callbacks and the IAsyncResult interface. At a network level, if it is over the Internet, you might consider a establishing a VPN connection between the client location and the server location, which should protect and encrypt the transfers and prevent having to write code dealing with that aspect of things. Then again, you could establish an FTP site somewhere and get WS_FTP Pro, or something, and enable people to upload to the FTP site. This can even use SSL for encryption, protecting the confidentiality of the information being passed.