Книга: UNIX: разработка сетевых приложений
Глава 16
Глава 16
16.1. Дескриптор используется совместно родительским и дочерним процессами, поэтому его счетчик ссылок равен 2. Если родительский процесс вызывает функцию close
, счетчик ссылок уменьшается с 2 до 1, и пока он больше нуля, сегмент FIN не посылается. Еще одна цель вызова функции shutdown
— послать сегмент FIN, даже если дескриптор больше нуля.
16.2. Родительский процесс продолжит запись в сокет, получивший сегмент FIN, а первый сегмент, посланный серверу, вызовет получение сегмента RST в ответ. После этого функция write
пошлет родительскому процессу сигнал SIGPIPE
, как показано в разделе 5.12.
16.3. Когда дочерний процесс вызывает функцию getppid
для отправки сигнала SIGTERM
, возвращаемый идентификатор процесса будет равен 1. Это указывает на процесс init
, наследующий все продолжающие работать дочерние процессы, родительские процессы которых завершились. Дочерний процесс будет пытаться послать сигнал процессу init
, не имея необходимых прав доступа. Но если не исключается, что данный клиент будет запущен с правами привилегированного пользователя, позволяющими посылать сигналы процессу init
, то возвращенное функцией getppid
значение должно быть проверено перед отправкой сигнала.
16.4. Если удалить эти две строки, вызывается функция select
. Но функция select
немедленно завершится, поскольку соединение установлено и сокет открыт для записи. Эта проверка и оператор goto
предотвращают ненужный вызов функции select
.
16.5. Это может случиться, если сервер отправляет данные сразу, как только завершается его функция accept
, и если узел клиента занят, когда приходит второй пакет трехэтапного рукопожатия для завершения соединения со стороны клиента (см. рис. 2.5). SMTP-серверы, например, немедленно отсылают клиенту сообщение по новому соединению, прежде чем произвести из него считывание.
- Chapter 5. Kernel Initialization
- Кто такая Елена Ивашенцева?
- 11.2. Цели процесса
- Рис. 214. Имена почтовых серверов.
- Document
- ГЛАВА 3 Внутренняя структура .NET Compact Framework
- Джордж Буль Отец булевой алгебры
- Removable Storage Media
- Работа пользователей с виртуальной машиной
- 6.5. Общие команды меню Windows-программ. Буфер обмена Windows
- Ассортимент
- 6.3 Native Application Builder (NAB)