Five pitfalls of Linux sockets programming
from: http://www-128.ibm.com/developerworks/linux/library/l-sockpit/?ca=dgr-lnxw02SocketPitfalls
Pitfall 1. Ignoring return status
Pitfall 2. Peer socket closure
Pitfall 3. Address in use error (EADDRINUSE)
Pitfall 4. Sending structured data
Pitfall 5. Framing assumptions in TCP