В статье "Five pitfalls of Linux sockets programming (http://www-128.ibm.com/developerworks/linux/library/l-sockpit/)" описываются пять наиболее часто встречающихся ошибок в программах начинающих программистов, использующих API сетевых сокетов.
Кратко:
- Игнорирование кода статуса завершения операции;
- Отсутствие обработки факта закрытия соединения удаленной стороной;
- Отсутствие setsockopt(...SO_REUSEADDR..) перед bind();
- Отправка структурированных данных, забывая про возможные различия их интерпретации на различных платформах;
- Неправильная организация блочной передачи в рамках одного потока TCP (например, шлют по TCP через send два блока по 100 байт и полагают, что для чтения будет два read по 100, а не один по 200).
URL: http://www-128.ibm.com/developerworks/linux/library/l-sockpit/
Новость: https://www.opennet.ru/opennews/art.shtml?num=6126