So, I have just started with C++ Sockets. Got the program to get headers from various servers just right today, and am aiming to make an IRC bot in under a month to perfect those basics. In the long term(less than an year), I am aiming to make a P2P messaging system, and maybe a file sharing/resources sharing network in the future. I am not sure of the entire process and the skills and knowledge I require.
I guess Sockets are definitely required? I also don't understand a lot of the basics, like how a P2P program is able to connect to various peers all at once when a socket can only support one connection at a time. Does it use UDP or TCP to send the packets? Since the order of the reaching of packets is not important in some P2P networks, they don't need to use TCP, I guess, like BitTorrent? I was reading up the topic in a book, and there were a lot of things explained like DHT and various algorithms, of which I have got the hang of only a part of things. I understand what a DHT is. Don't understand a majority of the other things. Can you guys give me tips or good books where the basics are properly explained?
As is obvious, my prior knowledge of networking is very weak, just upto the OSI stack, how packets are sent and stuff. Nothing more.