Уважаемые корефеи сетевого программирования, подскажите мне как написать прооооостенький сервер запускаемый средствами initd.Пробовал как написано у Стивенса - не получилось. Постоянно остается сокет с одной стороны в состоянии CLOSE_WAIT а с другой FIN_WAIT_2.
Серверное приложение сейчас из себя абсолютно ничего не представляет.
только закрытие сокета и выход из программы:
close(0);
exit(0);где же грабли??? почему даже после exit-а остаются открытые сокеты?
>Уважаемые корефеи сетевого программирования, подскажите мне как написать прооооостенький сервер запускаемый средствами
>initd.
>
>Пробовал как написано у Стивенса - не получилось. Постоянно остается сокет с
>одной стороны в состоянии CLOSE_WAIT а с другой FIN_WAIT_2.
>
>Серверное приложение сейчас из себя абсолютно ничего не представляет.
>
>только закрытие сокета и выход из программы:
>close(0);
>exit(0);
>
>где же грабли??? почему даже после exit-а остаются открытые сокеты?попробуй shutdown(0,2);
>попробуй shutdown(0,2);Уже пробовал. Ощущение что прога просто зависла.
Вот еще несколько уточнений:
1. в inetd.conf установлен флаг wait (т.е. я не хочу что б запустились две копии программы)
2. все тесты проводятся на одной машине (127.0.0.1)
3. сокет SOCK_STREAM
Поищи в Гугле слово "linger" в сочетании с "socket" и "setsockopt".