Re[4]: успешный send после удалённого shutdown
От: 0x656b694d Россия  
Дата: 08.12.08 14:49
Оценка:
Здравствуйте, TarasCo, Вы писали:

0>>Интересно, что пакеты FIN и ACK проходят с обоих концов. Т.е. со стороны клиента тоже кто-то выслал FIN и ACK.

TC>Значит, вы где то в коде позвали shutdown ( SD_SEND или SD_BOTH ) или вызвали closesocket ( он по умолчанию также попытается закрыть корректно соединение ). Сами FIN ACK и не могут посылаться.
Я играюсь с кодом, приведённым в первом сообщении. Там я нигде не закрываю сокет между запросами.
Я не знаю, могут ли промежуточные шлюзы подтверждать закрытие вместо меня. Если так, то 1) это странно, и 2) придётся выкручиваться.

TC>Если вы закроете канал для записи, при попытке записать что то после — получите ошибку, вроде ESHUTDOWN . Т.е алогритм простой — всегда нужно опрашивать приемный конец, даже если вы не ждете данных — может придти FIN и на него надо как о отреагировать.

Если бы было не так, я бы был ещё больше недоволен. Но ведь я сам не закрываю ничего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.