[CAsyncSocket] смерть процесса

otets-mihail

Есть прога, использующая CAsyncSocket для соединения с сервером
в процессе работы netstat -anb показывает
TCP ... ESTABLISHED
[mTest.exe] <pid моей программы>
далее, программа внезапно падает
после этого открываем нетстат, и читаем про наше соединение:
TCP ... ESTABLISHED
[System] <несуществующий пид>
и соединение продолжает спокойно висеть...
Вопрос, как такого избежать, то есть сделать, чтобы сокет сразу закрывался.

bleyman

Что за винда? Или не винда?
Вообще 2003 вроде довольно хорошо подбирает мусор за убитыми процессами.

evgen5555

У меня все нормально закрывается, даже если приложение в кору падает.
Код е?

bleyman

А при чём тут код? Это ось некорректно себя ведёт.
Ну или ему удалось сделать зомби.

psm-home

Инетересно, это не обыкновенный TIME_WAIT у него случайно? Хотя почему тогда netstat ESTABLISHED показывает, непонятно.

evgen5555

Ну да, я думаю, что на сокете какие-то незавершенные операции висят, поэтому он и не закрываецо.

bleyman

Если висят незавершённые операции — это проблемы той стороны.
А вообще я не очень понимаю, чем автору мешает открытый сокет. Ну, в случае если ось сознательно решила оставить его открытым. Он (автор) биндится с фиксированного порта на фиксированный порт и не может открыть новый канал? А зачем?

otets-mihail

W2k3 (сп1 на других не проверял еще
честно говоря, у меня аж челюсть отвисла, когда я это увидел
логика приложения такая, что при аварийном вырубинии процесса, сервер должен узнать об этом как можно скорее

evgen5555

Keep-alive не катит?

otets-mihail

придецо делать, видимо

otets-mihail

всем спасибо, дело было в том, что хэндл наследовался дочерним процессом
Оставить комментарий
Имя или ник:
Комментарий: