C++ and socket programming

Hello all,

It's days I'm dealing with this question and haven't reached a conclusion to make a decision and start learning socket programming.
I know C++ to a some extent and it's very exciting to be able to use it for socket programming too. That is, using what you have, without a need to seek something else.
If you ask about my purpose for C++ socket/network programming, I should say, I like to learn that because as a programmer, in near or far future I will feel need it. So I think it's good time to get started.


1- Stroustrup suggested Asio (non-Boost, because it's newer and close to become standard). I found that (http://think-async.com/Asio/asio-1.12.2/doc/) and think I ought to start from the overview (http://think-async.com/Asio/asio-1.12.2/doc/asio/overview.html), because I know almost nothing about socket programming or networking, so that starting point must be good to begin. But the drawback is that, that overview is huge! :(

2- Some other people say If I actually want to learn socket/network programming, I had better start by reading the book UNIX Network Programming, Volume 1, Third Edition, The Sockets Networking API. The book looks great although it's of 2003 and contains more than 1000 pages making it little hard to finish. My worries about that great book are: will I be able to use it in socket programming after reading it for a while? And, it's in C while I don't know C! Will it not be a problem for me to use it for C++ socket/network programming!? Will it be applicable?

3- The other choice which was suggested by many was reading a valuable tutorial
(http://beej.us/guide/bgnet/html/single/bgnet.html#intro) on socket programming which covers IP V6 too. I went for reading it and progressed to the third section. It's new but things in it are being more vague or the way the author explains them in that tut. I fear not to understand that well. Also, it's not a complete reference.

Each of these three cases or a new one, can be chosen by me if you suggest that. That is, I need some professionals' perspectives to get started. Please, tell me the best option among these three or anything else you suppose to be better. If possible, please provide some reasons for your opinions too.
Looking forward to seeing your talks. Thanks so much.
Last edited on
Network Programming with Qt may help you.
Registered users can post here. Sign in or register to post.