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”?
- Is “delete this” allowed in C++?
- What is a segmentation fault?
- How many spaces for tab character(\t)?
- How to create a dynamic array of integers
- How to create a dynamic array of integers
- Linker Error C++ “undefined reference ” [duplicate]
- How do I build a graphical user interface in C++? [closed]
- C++ convert from 1 char to string?
- How do I build a graphical user interface in C++? [closed]
- convert a char* to std::string
- system(“pause”); – Why is it wrong?
- Pause Console in C++ program
- system(“pause”); – Why is it wrong?
- Pause Console in C++ program
- How to implement 2D vector array?
- Why the switch statement cannot be applied on strings?
- What is the difference between g++ and gcc?
- Discord music bot not working
- How to use setprecision in C++
- How to dynamically allocate arrays in C++
- What does (~0L) mean?
- How to dynamically allocate arrays in C++
- What is the best way to use a HashMap in C++?
- What is the best way to use a HashMap in C++?
- What are the differences between a pointer variable and a reference variable in C++?
- Why do we need virtual functions in C++?
- Why in C++ do we use DWORD rather than unsigned int? [duplicate]
- What is an undefined reference/unresolved external symbol error and how do I fix it?
- Sleep for milliseconds
- How to convert string to char array in C++?
- How can I convert a std::string to int?
- Easiest way to convert int to string in C++
- What is the difference between float and double?
- Why is “using namespace std;” considered bad practice?
- What is the easiest way to initialize a std::vector with hardcoded elements?
- What is the C++ function to raise a number to a power?
- outputting ascii table in C++
- TypeError: ‘module’ object is not callable
- An existing connection was forcibly closed by the remote host
- What is a lambda expression in C++11?
- Vector of Vectors to create matrix
- How to use the PI constant in C++
- How to throw a C++ exception
- std::string to char*
- How to generate a random number in C++?
- pinpointing “conditional jump or move depends on uninitialized value(s)” valgrind message
- What is an undefined reference/unresolved external symbol error and how do I fix it?
- How do I find the length of an array?
- Sleep for milliseconds
- How to convert string to char array in C++?
- C++ — expected primary-expression before ‘ ‘
- Using getline() with file input in C++
- What is the effect of extern “C” in C++?
- C++ Cout & Cin & System “Ambiguous” [closed]
- lvalue required as left operand of assignment error when using C++
- ld: symbol(s) not found for architecture x86_64 error
- C++ string to double conversion
- Why are #ifndef and #define used in C++ header files?
- g++ ld: symbol(s) not found for architecture x86_64
- What exactly is the difference between “pass by reference” in C and in C++?
- How to use the PI constant in C++
- How to throw a C++ exception
- Conversion from string to char – c++
- What can be the reasons of connection refused errors?
- How do I fix a “Expected Primary-expression before ‘)’ token” error?
- How to find out if an item is present in a std::vector?
- What is meant by Resource Acquisition is Initialization (RAII)?
- When to use extern “C” in simple words? [duplicate]
- What is `CString`?
- Floating point exception( core dump
- Binary Search Tree Implementation in C++ STL?
- Initializing an array of objects
- Chrome hangs after certain amount of data transfered – waiting for available socket
- Discord API error when trying to send one command at discord using JavaScript client
- Passing Arrays to Function in C++
- What does the explicit keyword mean?
- How do I print out the contents of a vector?
- Difference between != and =! with an example(in C++)
- Expression must have class type
- The static keyword and its various uses in C++
- Passing an array by reference
- Unresolved external symbol in object files
- When should you use a class vs a struct in C++?
- C++ error ‘Undefined reference to Class::Function()’ [duplicate]