@ZhongYu - потому что Linux. ☺️ Серьезно, хороший разработчик слышит «этого никогда не случится» и предполагает, что так и будет. Как только вы осознаете, что дело существует, у вас нет другого выбора, кроме как поддержать его. Все остальное было бы некорректным поведением, не соответствующим стандарту. Поддержка такого рода крайнего случая - это то, что должно делать все программное обеспечение. Это программный эквивалент того, что ваш мост не упадет, когда кто-то оторвется от края.

а RHEL 5.3 (ядро 2.6.18).

Несколько раз я замечаю в netstat, что мое приложение имеет соединение, установило TCP соединение, когдаЛокальный адрес а такжеИностранный адрес такие же.

Вот та же проблема, о которой сообщил кто-то еще

Симптомы те же, что описаны в ссылке - клиент подключается к порту X порта сервера, работающего локально. Через некоторое время netstat показывает, что клиент имеет соединение с127.0.0.1:X в127.0.0.1:X

Как это возможно?

Изменить 01

Одновременное открытие вызывает проблему (большое спасибо Hasturkun). Вы можете увидеть это наклассическая диаграмма состояний TCP при переходе из состояния SYN_SENT в состояние SYNC_RECEIVED

Ответы на вопрос(1)

Ваш ответ на вопрос