Linux Socket Programming by Example
by Warren W. Gay
Understanding the Linux Kernel, 3rd Edition
by Daniel P. Bovet; Marco Cesati
Linux in a Nutshell, 6th Edition
by Ellen Siever; Stephen Figgins; Robert Love; Arnold Robbins
bash Cookbook, 1st Edition
by Carl Albing; JP Vossen; Cameron Newham
Running Linux, 5th Edition
by Matthias Kalle Dalheimer; Matt Welsh
The Cathedral & the Bazaar
by Eric S. Raymond
MySQL in a Nutshell, 2nd Edition
by Russell Dyer
This book teaches readers how to program Linux sockets, and gives them everything they need to know to make programs communicate effetively over networks.
It presents a comprehensive discussion of all relevant topics including: writing programs compatible with both Internet Protocol version 4 (IPv4) and IPv6, raw sockets, User Datagram Protocol (UDP), broadcasting /multicasting, server internals, and more, plus a section covering Posix threads.
It provides thorough coverage of programming with the TCP, UDP, and IP protocols, as well as lower-level raw sockets. The myriad of function calls, data structures, and options associated with the APIs are explained with well-chosen diagrams and tables.
After reading this book, the reader will be able to:
Differentiate basic datagrams vs. streaming sockets.
Differentiate unicast, broadcast, and multicast sockets.
Write socket-based network programs.
Write portable code for various OS'.
Implement client-server and peer communications
Increase network throughput using "connectionless" communications
Manage asynchronous I/O, I/O and multiple sockets.
Use signals, threading and processes to manage socket connections.
Understand new socket technologies like Mbone and 6bone.
Understand Remote Procedure Calls and how to implement them.
Understand the different socket addressing types.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 8 Ratings
Are Other Reviewers Using the Same Book? - 2001-11-06
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Poor job... - 2002-07-16
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I bought the book hoping to get some cookbook algorithms for setting up some sockets, but I must say I'm really disappointed with the book. I wish I had read the reviews here first. I would never have purchased the book. I'm an engineer, have been programming for over twenty years and have a large technical book collection. This book is poorly put together, jumps around topics, has confusing explanations, and the incomplete code segments don't help much... I'll think twice about buying another Sam's book. I've read gallies that were better than this. I rate this as a don't buy!
Has useful tidbits (but that's about it) - 2001-09-19
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
First of all, this book is no UNPv1. If you want to learn network programming for UNIX/Linux, there is nothing that could replace UNPv1 (Stevens "Unix Network Programming" 2nd ed., vol. 1). [CORRECTION: actually Comer's book(s) are comparable to those of Stevens]
Now back to the book reviewed. I bought it because it seemed to elaborate a bit more on a subject covered only briefly by Stevens: concurrent network I/O in real-world conditions. Well, it did have a special section on the subject but it didn't provide any particular information I was looking for:
- analysis of different I/O methods' behavior under different load conditions
- throughput analysis
- applicability of different methods in different UNIX flavours (Oops, this is a book for Linux! Still, it would be nice if the author at least mentioned the portability issues)
- while the examples were nice and clear, it would make sense to create an I/O abstraction layer that would act as a (de)multiplexor and to change only this layer for every I/O paradigm.
So, once we get past the section on real-world network I/O issues, what we are left with is a decent yet not perfect book on network programming. It will teach you how to develop network applications for Linux but it won't provide the same depth UNPv1 does.
Conclusion: Read it if you want to quickly start developing network apps and you don't have time for UNPv1. Otherwise go for UNPv1. Still, it is worthwhile to skim through the sections on throughput and performance.
Very Good source and Explanation - 2003-08-07
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I think this book is well written, it gives you the basic idea of the network protocal, mainly how each piece is created in a packet. It even goes a little into the Network OSI model, if you dont know about networking, then I can see how this book would seem hard for some ppl. I do admit that i wasnt too happy when i didnt get the cd that the book references too, but if you really need it, you can find it with a little bit of effort, or go to [the website]. Hope this helps those who need it :^).
A Bad Introduction on Sockets Programming on Unix/Linux - 2006-11-13
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
The main idea of the book is to present a broad overview of the software that uses the Sockets API from a conceptual and practical approach. For several reasons these objectives are not archieved.
The first problem I found is the bad writing style the author uses in order to explain the concepts. From useless methaphors to inconsistent computing jargon, passing by really bad redaction skills; the main text is plagged with non-relevant digressions that could be (if needed at all) put appart in its own chapter. I think 70% of these problems could be eliminated by a good editor review.
About the contents, the book tries to introduce a lot of concepts in an excesive superficial and/or inacurate way, frecuently inserting unimportant details and skipping the basics and really important aspects. For example, in the topic of threads versus processes, the book explains that the Posix Threads is a library and the fork et al. are system calls, etc. and provides a very suscint table of differences and extracts of code showing the API... its not clear from the text nor the samples the fact that the globals are shared between threads, nor the reasons to prefer them over processes or the other way. Next follows a (larger) explanation of the (nonportable and mostly useless) "clone" system call.
Some random additional complains:
- About 20% of the book are appendixes of questionable utility
- In the Kernel API reference, there are Linux-specific system calls (like sched_yield()) mixed with standard ones (like waitpid()) without advice about portability. Ok, this is a "Linux" book, but the author frecuently states the code is mostly usable on Unix.
- Lots of irrelevant pages... templates/persistence/etc on C++, dilemmas on project management(!), etc
- The "SSL/Security" chapter is "filled" with generalities about general security problems (hacking, firewalls, DMZ) but the SSL API is "explained" in sparse comments of a basic two-page code sample! Sadly, this pattern follows for all the "advaced" topics
My advice: like other readers said, do yourself a favor and look for Unix Network Programming Vol 1 of Stevens; or for non serious work just rely on internet tutorials.
Top Level Categories:
Operating Systems
Sub-Categories:
Operating Systems > Linux
Linux > Programming
Some information on this page was provided using data from Amazon.com®. View at Amazon >