Start with UNIX Network Programming as Sinan Ünür said. Read TCP/IP Illustrated Volume 1 after you have decent grasp on sockets. Don't skip this since it will increase your knowledge of the various network protocols dramatically. FWIW, I think that these two books should form the foundation of anyone that even considers doing network programming at the socket layer.