UNIX: разработка сетевых приложений
UNIX: разработка сетевых приложений читать книгу онлайн
Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
int sctp_opt_info(int <i>sockfd</i>, sctp_assoc_t <i>assoc_id</i>, int <i>opt</i>, void *<i>arg</i>, socklen_t *<i>siz</i>);<i>Возвращает: 0 в случае успешного завершения, -1 в случае ошибки</i>Здесь
sockfdassoc_idoptArgsizsocklen_t9.12. Функция sctp_peeloff
Как отмечалось ранее, любую ассоциацию, установленную через сокет типа «один- ко-многим», можно выделить в собственный сокет типа «один-к-одному». По семантике новая функция подобна
acceptsockfdidint sctp_peeloff(int <i>sockfd</i>, sctp_assoc_t <i>id</i>);<i>Возвращает: дескриптор нового сокета в случае успешного завершения, -1 в случае ошибки</i>9.13. Функция shutdown
Обсуждавшаяся в разделе 9.6 функция
shutdownshutdownshutdownclosecloseshutdown
Рис. 9.4. Закрытие ассоциации SCTP вызовом shutdown
Обратите внимание, что на рис. 9.4 мы подразумеваем, что процесс подписан на события
MSG_NOTIFICATIONreadshutdown■
SHUT_RD■
SHUT_WR■
SHUT_RDWRshutdown9.14. Уведомления
SCTP предоставляет разработчику приложений большое количество разнообразных уведомлений. С их помощью процесс может отслеживать состояние ассоциаций, с которыми он работает. Уведомления сообщают о событиях транспортного уровня, включая изменения состояния сети, установку ассоциаций, протокольные ошибки удаленного узла и неудачи при доставке сообщений. По умолчанию уведомления обо всех событиях отключены для сокетов обоих типов. Исключение делается для события
sctp_data_io_eventПараметр сокета
SCTP_EVENTSrecvmsgsctp_recvmsgmsg_flagsMSG_NOTIFICATIONУведомление любого типа имеет следующий формат. Первые восемь байтов идентифицируют тип уведомления и его полную длину. Включение подписки на событие
sctp_data_io_eventsctp_sndrcvinforecvmsgsctp_recvmsgsctp_sndrcvinfoДва уведомления содержат поле кода причины ошибки SCTP (SCTP error cause field). Значения этого поля перечислены в разделе 3.3.10 RFC 2960 [118] и в разделе «CAUSE CODES» (коды причин) документа
http://www.iana.org/assignments/sctp-parametersУведомления определяются следующим образом.
struct sctp_tlv { u_int16_t sn_type; u_int16_t sn_flags; u_int32_t sn_length;};/* уведомление о событии */
