Закрытия исходящих соединений

Автор mihail_1, 09 октября 2013, 11:48:07

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mihail_1

Соединения по которым долго нет ответа я закрываю. Но это приводит к росту количества сокетов в состояниях LAST_ACK, TIME_WAIT, FIN_WAIT2, FIN_WAIT1. Можно ли с этим как-то бороться или только хуже будет?

Olej

Цитата: mihail_1 от 09 октября 2013, 11:48:07
Соединения по которым долго нет ответа я закрываю. Но это приводит к росту количества сокетов в состояниях LAST_ACK, TIME_WAIT, FIN_WAIT2, FIN_WAIT1. Можно ли с этим как-то бороться или только хуже будет?

чем закрываю? как закрываю? ... и вообще что за соединения?
там (в TCP) достаточно много сложных и разнообразных нюансов ... таких как "полузакрытое соединение" и т.д. ...

не понимаю досконально (а такое бывает редко ;D) что там происходит - не нужно вам туда лазить, и заморачиваться с тем, что происходит с теми соединениями, которые закрыли (если правильно закрыли), и какие они после этого проходят состояния...



mihail_1

Программа написана на Си.
Закрываю вызовом
close(sock[n]);
Как? а какие варианты?
Создаю сокет
socket(PF_INET,SOCK_STREAM,0);
Открываю на нужный ip по 80 порту
Посылаю запрос, жду ответ
Если ответ приходит все хорошо, если нет закрываю и делаю пару повторных попыток.
От всех неудач остаются не закрывшиеся сокеты, количество которых растет и в принципе при этом свободные сокеты для новых соединений могут закончится.

Olej

Цитата: mihail_1 от 09 октября 2013, 22:00:15
Программа написана на Си.
Закрываю вызовом
close(sock[n]);
А если вас интересует что происходит после того...  :o
... то берём книжку Стивенса ...
- вот это старое издание:

- вот это новое издание ... через 15 лет после старого, но мало что поменялось:


... и там всё и про всё написано ;)