Which book(s) to learn sockets programming and TCP network communication?

Mawg says reinstate Monica picture Mawg says reinstate Monica · Nov 14, 2011 · Viewed 31.4k times · Source

I will do a few small projects over the next few months and need some books (preferably) or URLs to learn some basic concepts.

In general one PC or embedded device (which varies by project) collects some user input or data from an external hardware device and transmits it to a remote PC which will enter it into a database.

The back-end will be coded in Delphi using Indy socket components. The front-end might be a PC running a Delphi app using the same Indy sockets, but it might equally be a small controller board, probably programmed in C (with neither Windows nor Linux as an o/s, but with some unforeseeable socket support).

So, what I need is

  1. something - probably language agnostic - to get me up to speed on sockets programming
  2. conformation that I can just use a stream and write/read to define my own protocol (over TCP/IP) which will be very simple
  3. some overview of general networking (TCP?) concepts; maybe a little on security, general client/server stuff (for instance, I can send some from clients to the server and send a reply, but am not so sure about server initiated communication to a single server or a broadcast to all clients)
  4. anything else?

Any recommendations to get me up to speed, at least enough for a small project which would allow me to learn on the job.

Thanks in advance

Answer

Nikolai Fetissov picture Nikolai Fetissov · Nov 14, 2011

This is the book to learn TCP/IP, doesn't matter what language you will be using:

W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols

The following is the C network programmer's bible, highly recommended:

W. Richard Stevens, Unix Network Programming, Volume 1: The Sockets Networking API

Out of online resources, Beej's Guide to Network Programming tops the list.