Алексей.
Active member
После того как вы закрыли сокет и получили fin/ack это значит что ваш fin был принят и другая сторона уже знает что соединение закрыто, будет ли она закрывать свой сокет (отправляя свой fin) или нет на её совести, вы выполнили корректное закрытие соединения имхо.Пока применил такой вариант: посылаю HTTP ответ "Connection: close" и закрываю socket - он посылает FIN/ACK
У меня был значительно хреновый случай, когда на встраиваемой системе использовался ethernet модуль у которого с одной стороны физический 10BASE-T а с другой драйвер для стека, и эта зараза при поступления fin-а не сигналила стеку что соединение закрылось. Для загрузки файлов по ftp, когда сигналом окончания файла было получение закрытие соединения, приходилось забивать костыли, предварительно запрашивая размер файла.