URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4599
[ Назад ]

Исходное сообщение
"сервер запускаемый initd"

Отправлено Savva , 29-Авг-05 16:39 
Уважаемые корефеи сетевого программирования, подскажите мне как написать прооооостенький сервер запускаемый средствами initd.

Пробовал как написано у Стивенса - не получилось. Постоянно остается сокет с одной стороны в состоянии CLOSE_WAIT а с другой FIN_WAIT_2.

Серверное приложение сейчас из себя абсолютно ничего не представляет.

только закрытие сокета и выход из программы:
close(0);
exit(0);

где же грабли??? почему даже после exit-а остаются открытые сокеты?


Содержание

Сообщения в этом обсуждении
"сервер запускаемый initd"
Отправлено naquad , 29-Авг-05 16:53 
>Уважаемые корефеи сетевого программирования, подскажите мне как написать прооооостенький сервер запускаемый средствами
>initd.
>
>Пробовал как написано у Стивенса - не получилось. Постоянно остается сокет с
>одной стороны в состоянии CLOSE_WAIT а с другой FIN_WAIT_2.
>
>Серверное приложение сейчас из себя абсолютно ничего не представляет.
>
>только закрытие сокета и выход из программы:
>close(0);
>exit(0);
>
>где же грабли??? почему даже после exit-а остаются открытые сокеты?

попробуй shutdown(0,2);


"сервер запускаемый initd"
Отправлено Savva , 29-Авг-05 17:20 
>попробуй shutdown(0,2);

Уже пробовал. Ощущение что прога просто зависла.

Вот еще несколько уточнений:

1. в inetd.conf установлен флаг wait (т.е. я не хочу что б запустились две копии программы)

2. все тесты проводятся на одной машине (127.0.0.1)

3. сокет SOCK_STREAM



"сервер запускаемый initd"
Отправлено Ilya Evseev , 04-Сен-05 07:54 
Поищи в Гугле слово "linger" в сочетании с "socket" и "setsockopt".