UNIX: разработка сетевых приложений
UNIX: разработка сетевых приложений читать книгу онлайн
Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
9.8. Функция sctp_freeladdrs
Функция
sctp_freeladdrssctp_getladdrs#include <netinet/sctp.h>void sctp_freeladdrs(struct sockaddr *<i>addrs</i>);Здесь
addrssctp_getladdrs9.9. Функция sctp_sendmsg
Приложение может управлять параметрами SCTP, используя функцию
sendmsgssize_t sctp_sendmsg(int <i>sockfd</i>, const void *<i>msg</i>, size_t <i>msgsz</i>, const struct sockaddr *<i>to</i>, socklen_t <i>tolen</i>, uint32_t <i>ppid</i>, uint32_t <i>flags</i>, uint16_t <i>stream</i>, uint32_t <i>timetolive</i>, uint32_t <i>context</i>);<i>Возвращает: количество записанных байтов в случае успешного завершения, -1 в случае ошибки</i>Использование
sctp_sendmsgsockfdmsgmsgsztolentoppidflagsНомер потока SCTP указывается вызывающим приложением в аргументе
streamlifetimecontextMSG_PR_SCTP_TTLret = sctp_sendmsg(sockfd, data, datasz, &dest, sizeof(dest), 24, MSG_PR_SCTP_TTL, 1, 1000, 52);Этот подход значительно проще выделения памяти под необходимые вспомогательные данные и настройки структур, входящих в
msghdrsctp_sendmsgsendmsgflags9.10. Функция sctp_recvmsg
Функция
sctp_recvmsgsctp_sendmsgmsg_flagsrecvmsgMSG_NOTIFICATIONMSG_EORsctp_sndrcvinfosctp_sndrcvinfosctp_data_io_eventSCTP_EVENTSssize_t sctp_recvmsg(int <i>sockfd</i>, void *<i>msg</i>, size_t <i>msgsz</i>, struct sockaddr *<i>from</i>, socklen_t *<i>fromlen</i>, struct sctp_sndrcvinfo *<i>sinfo</i>, int *msg_<i>flags</i>);<i>Возвращает, количество считанных байтов в случае успешного завершения, -1 в случае ошибки</i>По возвращении из этого вызова аргумент
msgmsgszfromfromlenmsg_flagssctp_data_io_eventsctp_sndrcvinfosctp_recvmsgrecvmsgflags9.11. Функция sctp_opt_info
Эта функция предназначена для тех приложений, которым недостаточно возможностей, предоставляемых функциями
getsockoptSCTP_STATUSgetsockoptsctp_opt_infosctp_opt_infogetsockoptsctp_opt_info
