I'm new in this topic. My intend is to create a client-server program which main function is to let users exchange files. The files can be any type: images, movies, text files etc. It would be doable for me to create a program for one data-type only. For example jpg: I put it into byte-stream, later I download it as byte-stream and convert into jpg. But my problem is how to handle different types. Because i don't know what kind of type I am going to send and what kind I am going to download and transfer from byte-stream. My question is: in general, what kind of classes do I have to use, what kind of technologies, what should be the mechanic of that kind of program.