To understand sockets and use them right, you need The Sockets Bible:
W. Richard Stevens, Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
You absolutely must have this book before you sit down to write a line of sockets code. Don’t leave home without it. Really. Starting around $35 used at Amazon.
EDIT: The OP asked about other volumes. Here are two others:
W. Richard Stevens, UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition)
W. Richard Stevens, TCP/IP Illustrated, Vol. 1: The Protocols
They are of Stevens’s usual and expected superb quality. I don’t know what his plans were for integrating all these books,
Related Posts:
- Socket Programming in C++
- Socket API or library for C++?
- java.net.SocketException: Network is unreachable: connect
- What does “connection reset by peer” mean?
- What is AF_INET, and why do I need it?
- C# An established connection was aborted by the software in your host machine
- Python [Errno 98] Address already in use
- Will setting a multicast destination address to FFFF.FFFF.FFFF make it a broadcast?
- How to create PPTP connection with Java?
- What’s causing my java.net.SocketException: Connection reset?
- Android – could not install *smartsocket* listener
- Python ConnectionRefusedError: [Errno 61] Connection refused
- What does socket binding mean?
- Getting the IP address of the current machine using Java
- java.net.SocketException: Software caused connection abort: recv failed
- What is the meaning of “sin_addr.s_addr ” and “inet_addr”?
- Pause Console in C++ program
- Why the switch statement cannot be applied on strings?
- How to dynamically allocate arrays in C++
- Iterate through a C++ Vector using a ‘for’ loop
- How do I debug error ECONNRESET in Node.js?
- ‘was not declared in this scope’ error
- Simple dictionary in C++
- Good input validation loop using cin – C++
- Are the C++ & and * operators inverses in all contexts?
- C++ for each, pulling from vector elements
- How do I erase an element from std::vector<> by index?
- What’s the C++ version of Java’s ArrayList
- Incomplete Type Is Not Allowed
- When to use extern in C++
- how to implement quick sort algorithm in C++
- C++ Vector of pointers
- What is the C version of RMI
- Difference between ‘strcpy’ and ‘strcpy_s’?
- What is uintptr_t data type
- const int = int const?
- Undefined reference to vtable
- In C++, what is a virtual base class?
- “Multiple definition of” C++ compiler error
- Cannot assign requested address – possible causes?
- wntdll.pdb not loaded – Can’t see the exception
- C++: How to round a double to an int?
- Difference between const reference and normal parameter
- Using “super” in C++
- unsigned int vs. size_t
- How do I clear a C++ array?
- error: expected primary-expression before ‘)’ token (C)
- What does -> mean in C++?
- Correct way of looping through C++ arrays
- C++ how to read a line with delimiter until the end of each line?
- Random number c++ in some range
- What’s the equivalent of new/delete of C++ in C?
- Fatal error: ‘stdafx.h’ file not found
- How do I add the MinGW bin directory to my system path?
- What’s the syntax for declaring an array of function pointers without using a separate typedef?
- C++ cannot open source file
- What is the difference between const_iterator and non-const iterator in the C++ STL?
- Sorting Linked List C++ with pointers
- Get Unix timestamp with C++
- Class prototyping
- 8 queens puzzle with user input c++
- How to dynamically allocate an array of pointers in C++?
- How do I compile C++ to JavaScript in a browser?
- Is the sizeof(some pointer) always equal to four?
- Reading from .txt file into two dimensional array in c++
- C++ Error ‘nullptr was not declared in this scope’ in Eclipse IDE
- C++ Simple hangman game
- “The system cannot find the file specified” when running C++ program
- Remove First and Last Character C++
- python socket programming OSError: [WinError 10038] an operation was attempted on something that is not a socket
- C++ Convert string (or char*) to wstring (or wchar_t*)
- Program received signal SIGSEGV, Segmentation fault
- Integer to hex string in C++
- Comparison of C++ unit test frameworks
- What is the difference between .cc and .cpp file suffix?
- C++ error: object of abstract class type is not allowed: pure virtual function has no overrider
- Reading data from file into an array
- LINK : fatal error LNK1561: entry point must be defined ERROR IN VC++
- Trying to use int in getline
- What is the difference between an Abstract Data Type(ADT) and a Data Structure?
- How to set timeout on python’s socket recv method?
- What does the term “empty loop” refer to exactly in C and C++?
- c++ error c2015: too many characters in constant
- Splitting a C++ std::string using tokens, e.g. “;”
- Python Socket Receive Large Amount of Data
- What is the job of autogen.sh when building a c++ package on Linux
- Using G++ to compile multiple .cpp and .h files
- LPCSTR, LPCTSTR and LPTSTR
- How to do std::string indexof in C++ that returns index of matching string?
- Java simple code: java.net.SocketException: Unexpected end of file from server
- variable or field declared void
- Invalid conversion from ‘char’ to ‘const char *’
- How do I deal with “signed/unsigned mismatch” warnings (C4018)?
- Creating folders in C++
- What does ‘return *this’ mean in C++?
- C++ equivalent of StringBuffer/StringBuilder?
- heap corruption detected | C++
- Update g++ but still old version
- module unsafe for SAFESEH image C++
- Why are there two different getline() functions (if indeed there are)?