Skip to main content
GameDev.net gamedev.net
🔒 Locked

Networking Books

Started by Badgerr Jul 10, 2009 at 3:00 AM 11 replies 3.5k views
Original Post
Badgerr
Badgerr
I'm looking for a selection of books on C++ Network Programming - not necessarily just for games, but in general. I'm not looking for beginners guides, I want something more advanced. I'd like it to cover concepts such as IOCP in detail (although I do have some experience with this already), topics discussing TCP/UDP protocol details, implementing ordering/reliability protocols on top of UDP. Network application architecture/design discussion (yes that's pretty general) would also be a bonus, as would a section on security (but that would be bordering on cryptography). Really I would just like to learn about things I don't already know. Hopefully books like this exist outside of my imagination, though I would prefer them to be recently published given the speed in which our technology progresses these days - I fear anything more than a few years old would be outdated, but I could be wrong. Can anyone suggest any books that fit my description? ISBNs would help too if possible. Edit: Platform should focus on Windows, but I'm not fussed if the book if mostly theory and applicable to many platforms.
________________________________Blog...
davidlkoenig
davidlkoenig
I'm surprised no one actually responded to you on this one.

The first book I would recommend for socket & protocol details/theory would be:
Unix Network Programming, Vol 1 (3rd Edition)
ISBN 0131411551

I realize that you're looking for more of a Windows focus. When it comes down to it, the base socket functions are primarily the same on all platforms. The Winsock specific things you'll most likely deal with initially are simply startup and cleanup functions. As a base, I would recommend that every network programmer have a copy of this book.

I've also got a list of urls on my site which will point you to a bunch of other sites with actual useful info on them.
http://www.gamenetworkprogramming.com/articles.html

[Edited by - davidlkoenig on July 19, 2009 3:59:04 PM]
hplus0603
hplus0603
Doesn't the Forum FAQ already list a bunch of resources?
I'm pretty sure it mentions classics like Stevens' books.
enum Bool { True, False, FileNotFound };
davidlkoenig
davidlkoenig
No one had answered the original question, even to suggest reading through the FAQ, so I thought I'd try to help. I made the assumption that the author of the original post read through the FAQ given that it's a sticky thread on the forums. I only mentioned the prior link as possibly useful, and you can never have enough information.

Also, I don't see any listing for the book "Unix Network Programming" from searching the FAQ, so you might want to update it.

[Edited by - davidlkoenig on July 20, 2009 7:59:56 AM]
Badgerr
Badgerr
I did read the forum FAQ and didn't see any section on books - maybe there is room to add a short list of recommended reading for both the beginner and more advanced user. I am still looking for copies of the Stevens' books locally, but if I can't find any I'll have to bite the bullet and order them from amazon - I think it's just the first 2 volumes that I need, someone told me the 3rd isn't worth bothering with.

Thanks for responding anyway I'll be sure to take a look through your site when I get some time. I picked up a book on TCP/IP cheap from a local computer market but I don't think it covers everything I need, it seems more geared towards the beginner - that said I have learnt a few things from it that I didn't already know.
________________________________Blog...
hplus0603
hplus0603
Quote:
I thought I'd try to help.


Your help is appreciated. My short note was also intended as help.
I turns out the FAQ actually does need a better section on books (as opposed to tutorials), so I'll have to go over that.
Any other recommendations you think should be in that list?
(The classic Stevens book is "TCP/IP Illustrated").
enum Bool { True, False, FileNotFound };
davidlkoenig
davidlkoenig
Yeah the "TCP/IP Illustrated" volumes are also very good. Anything by Stevens is pretty much a classic text. (at least the first two volumes of any of his series) The Game Programming Gems series starting with book 3 has interesting information for sure. Game Coding Complete has a networking section. I believe that is in its 3rd edition at this point. Obviously that is going to be more game oriented than general.

From my experience, there aren't a large number of really great books on network programming. The Stevens books along with online sources such as Beej's and MSDN seem to be about the best that really exists. (augmented by the forums here)

One of the topics that Badgerr mentioned was IOCP, is which case Google can probably find as much info as is available, whether that be references to Boost::ASIO, or the native Win32 IOCP docs. "Google is your friend" etc...

I've got quite a bit of things in storage right now, so I'll have to go through those when I get a chance. If I come across anything interesting, I'll forward it your way.
Badgerr
Badgerr
I agree most information on IOCP can be found on the web - I learnt a lot about it from that article posted here demonstrating a UDP server using IOCP, as well as examples I found through google. I was really hoping for some sort of definitive standard of its use or something sounding equally as vague, but it's not imporant so much now as I already know how it works.

I did use boost::asio for a short time, but I found the whole template metaprogramming style of boost in general to be tiresome and messy to say the least.
________________________________Blog...
davidlkoenig
davidlkoenig
Actually, now that I think of it, there was one book that might be of interest to you. Though, I believe it's out of print now. (naturally)

"Network Programming for Microsoft Windows"
ISBN: 0735615799

You might Google for that... There's some decent info on it floating around out there.
Badgerr
Badgerr
Has excellent reviews on amazon, now I just have to find a copy. Thanks.
________________________________Blog...
imgty
imgty
Programming Server-Side Applications for Microsoft Windows 2000 by Jeffrey Richter

has information about IOCP and SSL via SChannel.
cache_hit
cache_hit
Quote:
Original post by imgty
Programming Server-Side Applications for Microsoft Windows 2000 by Jeffrey Richter

has information about IOCP and SSL via SChannel.


Windows Via C/C++ is a more recent version of essentially the same book. It doesn't have the SSL information, but it does have a very nice section on IOCP.

Ultimately you're going to need a collection of books I think, I don't know if there's necessarily 1 book that's going to cover everything you've outlined. If nothing else because IOCP really has nothing to do with sockets, it's a very general mechanism that can be used with sockets among other things.
hplus0603
hplus0603
In my opinion, if you know programming in C++ pretty well, then you don't need any books. MSDN has excellent documentation of the Win32 library calls (which include IOCP, and WinSock, and pretty much anything else you can do on Windows). If you want to compare to other systems, the UNIX MAN pages are also available online.
enum Bool { True, False, FileNotFound };

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.