Effective TCP/IP Programming and over 2 million other books are available for Amazon Kindle . Learn more
  • RRP: £40.99
  • You Save: £6.14 (15%)
FREE Delivery in the UK.
Only 1 left in stock.
Dispatched from and sold by Amazon.
Gift-wrap available.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs Paperback – 4 May 2000

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
£29.95 £2.99

Product details

  • Paperback: 320 pages
  • Publisher: Addison Wesley; 1 edition (4 May 2000)
  • Language: English
  • ISBN-10: 0201615894
  • ISBN-13: 978-0201615890
  • Product Dimensions: 18.6 x 2 x 23 cm
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: 346,559 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

Amazon Review

While many C/C++ programmers know at least the basics of TCP/IP, becoming an expert network programmer usually requires a lot of experience and sometimes hard-to-find knowledge. Written to give the intermediate or advanced developer a leg-up in creating robust network applications using TCP/IP and related protocols, Effective TCP/IP Programming offers a truly valuable review and guide to getting the most out of your networked programs based on this popular standard.

Packaged as a series of 44 tips for better TCP/IP programs, this book actually does much more. Early sections review the basics of the TCP, UDP and IP protocols (along with related standards). A winning feature here is the author's care to distinguish between the well-known BSD (for UNIX) and Winsock (for Windows) versions of sockets. (By using macros and "skeleton" programs, his sample C code will run easily on either implementation.)

Besides nuts-and-bolts programming advice, and plenty of hints for better performance, Snader also discusses how IP works under the hood. Standout sections here include a discussion of the pitfalls of scaling a standalone or LAN TCP/IP application to the Internet, as well as what a "reliable" protocol like TCP really means. He shows you how to handle misbehaving servers and clients, how to use multiple sockets effectively, as well as several useful tips for optimising data streamed across the wire. Though there is no mention of Java here (which offers strong socket support on its own), the author does provide Perl examples that work with sockets to get you started with sockets used within scripting languages.

Since IP is the protocol of choice for the Internet, more and more of us are faced with becoming socket programming experts in a hurry. In all, Effective TCP/IP Programming offers a good mix of basic and advanced tips on today's IP and related protocols. It's a valuable resource for any developer who programs for the Internet and wants both to write better code using sockets. --Richard Dragan, Amazon.com

Topics covered: TCP/IP overview and programming tips, Berkeley Socket Distribution (BSD) vs. Winsock/Windows socket implementation issues, connected and connectionless protocols, network programming frameworks, UDP vs. TCP, reliable protocols, network programming for single workstations, LANs and WANs; event-driven programming, improving write operations, IP packet layout, byte ordering issues, the Nagle and delayed ACK algorithms, using network utilities: inetd, tcpmux, tcpdump, traceroute, ttcp, and netstat; resources and hints for improving network programming skills.

From the Back Cover

Programming in TCP/IP can seem deceptively simple. Nonetheless, many network programmers recognize that their applications could be much more robust. Effective TCP/IP Programming is designed to boost programmers to a higher level of competence by focusing on the protocol suite's more subtle features and techniques. It gives you the know-how you need to produce highly effective TCP/IP programs.

In forty-four concise, self-contained lessons, this book offers experience-based tips, practices, and rules of thumb for learning high-performance TCP/IP programming techniques. Moreover, it shows you how to avoid many of TCP/IP's most common trouble spots. Effective TCP/IP Programming offers valuable advice on such topics as:
  • Exploring IP addressing, subnets, and CIDR
  • Preferring the sockets interface over XTI/TLI
  • Using two TCP connections
  • Making your applications event-driven
  • Using one large write instead of multiple small writes
  • Avoiding data copying
  • Understanding what TCP reliability really means
  • Recognizing the effects of buffer sizes
  • Using tcpdump, traceroute, netstat, and ping effectively
Numerous examples demonstrate essential ideas and concepts. Skeleton code and a library of common functions allow you to write applications without having to worry about routine chores.

Through individual tips and explanations, you will acquire an overall understanding of TCP/IP's inner workings and the practical knowledge needed to put it to work. Using Effective TCP/IP Programming, you'll speed through the learning process and quickly achieve the programming capabilities of a seasoned pro.


Customer Reviews

3.5 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See both customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

5 of 5 people found the following review helpful By Steve Hibbert on 19 Jun 2003
Format: Paperback
I'm a begginner when it comes to C and C++, and finding an entry point to implementing a resilient Winsock solution was my goal when I bought this book.
It's not targeted at beginners, and assumes a reasonable amount of compentency with compiling, linking and using external resources. Having said that, I have struggled through, and I have managed to get most of the examples in the book working, which has proved very instructive. Mostly I had to resort to finding functions and chopping them into my local code - I see this not as a failing of the book, just as something to be aware of for freshmen.
The book also makes a great effort to be relevant to Windows and Unix, and to rigourously enforce compatibility. A definite plus.
There are a lot of examples of how TCP/IP fails, common errors and assumptions that programmers make when using TCP and UDP, and very useful tips on what to avoid. There is also a lot of technical explanation of what is going on at the stream/packet level, which is very useful, and well written.
Coding is all in C and rarely uses classes. The code is slimmed down to show key functionality, and the only errors I've found have been of my own devising.
I did hit a brick wall at one point, and resorted to contacting Jon Snader, the author. He was good enough to reply and offer encouragement and further tips, and he seemed genuinely interested in helping.
All in all, I would strongly recommend this book to established, confident C programmers who may have tried Winsock programming and found it painful. Mr Snader's book has shaped how I intend to build my system architecture, so it's well worth the investment.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
By Kim on 16 April 2008
Format: Paperback Verified Purchase
In this book a socket is made non-blocking only briefly, in an example that is not compiled under Windows. Several of the tips are not relevant to the Windows environment or are elementary.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 20 reviews
9 of 9 people found the following review helpful
Lives upto its name 3 Sep 2000
By Govind - Published on Amazon.com
Format: Paperback
This book is one of the few you would like to have in your library.
a. It compresses the TCP/IP working in short and sweet format.
b. It's tip section has lot of sub tips/information which mention differences/workarounds etc in concise way.
c. It has extensive hands on samples to refer to.
d. It feels like culmination of real life hands on implementation of protocol suite and its usage in day to day life which author succintly conveys to readers in form of anecdotes/ideas etc.
e. Author is very precise about what book is not and thus maintains the readable/digestible size of the book and refers to comer/steven when appropriate.
f. It will be useful for every software eng to understand the workings and sometimes even pick cool concepts from the most scalable app ever designed (TCP/IP).

Overall the best book buy...most of the effective series have been good.
12 of 14 people found the following review helpful
entry-level textbook disguised as "tips" 21 July 2006
By Chronic Game Programmer - Published on Amazon.com
Format: Paperback Verified Purchase
I don't know why this book is rated so highly. There's nothing wrong with the content (what little there is), but I feel that it's misrepresented as a book for intermediate level network programmers. I was expecting discussion on when to use select() vs. multi-threaded vs. single-threaded servers, for example. But this book is more for beginners (Tip #1, "Understand the difference between connectionless and connection-oriented protocols").

I also feel that the title is misleading. I was expecting a book of specific tips on par with Scott Meyers' Effective C++/STL series which are vastly superior references on their own topics).

It's decent as a textbook, once you realize that's what this is. But it's still pretty shallow, and definitely not worth the high price tag.
9 of 10 people found the following review helpful
Strong recommended. 4 July 2001
By Rosanne Calabrese - Published on Amazon.com
Format: Paperback
It's easy to write TCP/IP communications into an application using sockets, but deceptively difficult to write it correctly. As anyone who has done TCP/IP development can tell you writing good, solid, high performance TCP/IP code is no easy task. It may look easy because the sockets API is fairly simple to use, but don't be fooled. This book goes a long way towards helping you write high quality TCP/IP code. The book presents 44 tips, which are a treasure trove of information, on the dos and don'ts of TCP/IP development. If you do TCP/IP development at a professional level this book is a must have. I hope this helps J.
7 of 8 people found the following review helpful
A MUST HAVE BOOK 27 Sep 2001
By Ted Tash - Published on Amazon.com
Format: Paperback
This book provides an excellent insight into TCP/IP programming. The concepts are presented in a system independent manner as much as possible. The focus of the book is to teach TCP/IP programming concepts and not to teach how to program in WINDOWS, so readers who are not competent in Windows programming may need another reference to help them out there. I have not found another book that so clearly outlines the considerations that must be made in order to design an effective and robust TCP/IP interface. A list of some of the points that I found very helpful are:
1) Why to use TCP instead of UDP except for very specific circumstances.
2) TCP is a STREAM protocol with no inherent notion of message or message boundary.
3) Why to combine data into larger writes instead of many small writes.
4) A discussion of avoiding movement of data with Shared Memory.
4 of 4 people found the following review helpful
Excellent book for intermediate Network Programmer 24 Jun 2002
By Park Sang Hee - Published on Amazon.com
Format: Paperback
Every book has target, and that's important for rating books.
As an intermediate programmer(my major was Computer Science but I don't have much experience in real field yet. I admit it.), this book was a great help to me. I have read Mr.Comer's "Internetworking with TCP/IP" and Mr.Steven's "Unix Network Programming". Definitely, those books are good references. But usually, readers of those big books can miss some important points.
While reading this book, I got back to those books and re-read many pages which I have missed their real meaning. So, that's the virtue of this book. This book is quite concise and clear about Network features(especially TCP/IP) which can be easily overlooked.
Author said he would deal with both UNIX(LINUX) and Windows platform, but he didn't follow his promise well. This book is quite concentrated for Unix, but that's not so serious defect. A great deal of this book's technics are quite helpful regardless which platform you work.
Were these reviews helpful? Let us know