I want to create a very simple program that lets 2 people share files over the internet by just putting the file in a folder and it automatically syncs it to the other persons. I know there are programs out there like this but i want to try to make my own. I'm getting a lot better with c++ and its time to take it to the next level, so is there any easy to use libraries out there that will help me with this? also is there anything else i will need to do for this to work?
How will the program who all are on the network? Also, there should be some program "listening" for files.
When two programs talk to each other over network one program should typically know the name/IP of other machine, then there is a handshake to check whether the program has established connection with right program on other side etc.
Otherwise how do you "save the files to everyone in the network"?
I am telling, that question was more for Pickle.
You need all of the things that I said. Libraries will help with sockets and sending/receiving data.
The design you have to decide, and then develop a application level protocol yourself. By doing this will you will learn about network programming and protocols . Otherwise use already existing protocols like XMPP which google uses. this might prove to be too much depending on how much one knows about network programming.
If you want some comprehensive protocol to be developed and looking at helper libraries you can also have a look at protocol buffers
start by creating two simple programs 1) that listens on a port, accepts a connection receives a file and saves it 2) that opens a connection to that port (initially it can be same machine as program 1) then opens and sends a file across socket
Later on you can add handshake and error handling etc.