ソケットで困った時は

UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
いわゆるUNIXソケットの経典本。この業界の人間であれば個人で所有している他に、会社に一冊は置いてあるのではないか。

Unix Network Programming, Volume 1: The Sockets Networking API (Addison-Wesley Professional Computing Series) Unix Network Programming: The Sockets Networking Api
原著の最新版はこれか。

ネット上でFAQやTIPSを探すと、なんといってもこの文書が素晴らしい。(上記の書籍を参照している)
Programming UNIX Sockets in C - Frequently Asked Questions
Programming UNIX Sockets in C - Frequently Asked Questions (有志の方々による邦訳)
著者は

この FAQ は、UNIX 環境における C プログラマのためのものです。 WinSock プログラマPerlJava その他向けのものではありません。

と断りを入れているが、正直な所UNIXソケットの基礎は世の全てのソケットAPIの基礎になっている。従って言語、プラットホーム関係なく参考になると断言できる。

例えば今回私がはまったTIME_WAITによるポート枯渇に関しても一発だ。
4.1 bind() から「アドレス使用中 "address already in use"」が返されるのはどうしてですか
4.2 どうしてソケットがクローズしてくれないのでしょうか?
2.7 TIME_WAIT 状態について説明してください

TCP/UDPソケットプログラミングの一般的な疑問の殆どはこれらを読んで理解することで解決すると思う。