J. S. Hardman said
This book gets very high ratings on both amazon.co.uk and amazon.com. I've given it a slightly lower rating than some, although still four stars, and will explain why...
The subtitle on the cover of the book is "Practical Guide for Programmers" which suggests it is going to be good even for experienced developers. It is only when you read the preface (page X) that you find that the book is aimed "primarily at students", and even then is "intended as a supplement, to be used with a traditional textbook", which seems a bit of a contradiction when it then says that "we have tried to make the book reasonably self-contained".
Anyway, what are the good points of this book? Well, it does mention most of the bits that a developer using sockets will want to consider. It has everything from blocking sockets, through non-blocking sockets and the select model, through to overlapped I/O. It also mentions threading, the use of thread pools, broadcast and multicast. All good stuff. Even includes example code for each.
Where the book falls down is that having skimmed over all of those topics it (a) doesn't provide adequate information about how to choose the model (synch vs. asynch, blocking vs. non-blocking, 1 thread vs. fixed number (> 1) of threads vs. thread pool, etc) to use for a particular project, and (b) falls short of being self-contained, doing the blah-blah is beyond the scope of this book thing.
I have seen many projects developed using the wrong model, resulting in poor performance, lack of responsiveness, inability to shutdown cleanly etc. I'm pretty sure that the authors of the book will have seen projects like that too. Books about using sockets really need to advise on this area.
It is understandable that a book of this size and price will say that some things are outside the scope of the book, but not something as basic as socket options (p52 refers the reader to the MSDN). Again, socket options are an area where well-meaning developers or support staff set values that are little better than guesses, and which sometimes cause adverse effects. If there's going to be a second edition of this book, please include advice on such matters.
So, all in all, good for students or people new to sockets, but not quite great. It tells you the basic techniques, but not how to use them to best advantage. Having said that, I prefer this book to C# Network Programming which rambles, uses language that is ambiguous in places, and contains a significant error (if being very generous, it could be very lazy English causing an unintended meaning) on the very page I opened it on.
It's probably best for people who already know sockets really well, but who are switching from one language to another (e.g. C++ or Java to C#). Those people probably know what model and options to use, just need to see how to do it in C# - something the book does do well.
Chris Kissel said
This book is a good intermediate to somewhat advanced book on TCP and UDP protocols using Sockets in .Net - all examples of-course as the title suggests are in C#. It does show some interesting examples and was able to get me started using Sockets in .Net - however it didn't go as far as I had hoped. But if you're needing something to show you how to start using Sockets it is a very good book.
Juan Divison said
I think this book is very good because es simple, explain clearly and go directly to the matter.
Juan Ramon Divison
G. Long said
Did you ever just want a book get to the point and tell you what you need to know? This is that book. If your new to winsock, this book will get you rolling quickly.
C. Schweitzer said
I've read through the first couple of chapters and I must say this is a good book. The thing I like most about this book is that the authors take time to not only give you working code but explain what the heck blocks within the programs do. If you are a novice programmer you may want to pick up a different book because it does assume you have a good understanding of basic C# programming.
Comments