Получение статуса сокета через приложение C ++ (Linux) - PullRequest
0 голосов
/ 12 декабря 2011

Мне нужно написать код, который принудительно закрывает дочерние процессы, которые имеют подключения в состоянии CLOSE_WAIT .Он должен работать на родительском процессе и постоянно проверять разветвленные дочерние процессы (серверы).В настоящее время я не могу изменить код связи на уровне ребенка.Этот код должен быть написан на c ++ и работать на Unix / Linux.

Мой вопрос:

  1. Это хорошая идея - использовать netstat через код и анализировать результатузнать, какой сокет + pid находится в ситуации CLOSE_WAIT?

  2. Существует ли какой-либо код C ++, который позволяет мне легко получить состояние сокета, учитывая номер дескриптора файла?

  3. Если у вас есть другие идеи / рекомендации, пожалуйста, поделитесь.

Большое спасибо, Офира.

1 Ответ

0 голосов
/ 12 декабря 2011

1) Является ли хорошей идеей использовать netstat через код и анализировать результат, чтобы узнать, какой сокет + pid находится в ситуации CLOSE_WAIT?

Если вы работаете в Linux, вы должны поступить так же, как ss (8), чтобы определить состояние сокета.

...