Вход/Регистрация
UNIX: разработка сетевых приложений
вернуться

Стивенс Уильям Ричард

Шрифт:

101 };

102 /* Нам нужны более новые макросы CMSG_LEN и CMSG_SPACE, но в

103 настоящее время их поддерживают далеко не все реализации. Им требуется

104 макрос ALIGN, но это зависит от реализации */

105 #ifndef CMSG_LEN

106 #define CMSG_LEN(size) (sizeof(struct cmsghdr) + (size))

107 #endif

108 #ifndef CMSG_SPACE

109 #define CMSG_SPACE(size) (sizeof(struct cmsghdr) + (size))

110 #endif

111 /* POSIX требует макрос SUN_LEN, но он определен

112 не во всех реализациях. Этот макрос 4.4BSD работает

123 независимо от того, имеется ли поле длины */

114 #ifndef SUN_LEN

115 #define SUN_LEN(su) \

116 (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))

117 #endif

118 /* В POSIX "домен Unix" называется "локальным IPC".

119 Но пока не во всех системах определены AF_LOCAL и PF_LOCAL */

120 #ifndef AF_LOCAL

121 #define AF_LOCAL AF_UNIX

122 #endif

123 #ifndef PF_LOCAL

124 #define PF_LOCAL PF_UNIX

125 #endif

126 /* POSIX требует определения константы INFTIM в <poll.h>, но во многих

127 системах она по-прежнему определяется в <sys/stropts.h>. Чтобы

128 не подключать все функции работы с потоками, определяем ее здесь.

129 Это стандартное значение, но нет гарантии, что оно равно -1 */

130 #ifndef INFTIM

131 #define INFTIM (-1) /* бесконечный тайм-аут */

132 #ifdef HAVE_POLL_H

133 #define INFTIM_UNPH /* надо указать в unpxti.h, что эта константа

определена здесь */

134 #endif

135 #endif

136 /* Это значение можно было бы извлечь из SOMAXCONN в <sys/socket.h>,

137 но многие ядра по-прежнему определяют его как 5,

хотя на самом деле поддерживается гораздо больше */

138 #define LISTENQ 1024 /* второй аргумент функции listen */

139 /* Различные константы */

140 #define MAXLINE 4096 /* максимальная длина текстовой строки */

141 #define BUFFSIZE 8192 /* размер буфера для чтения и записи */

142 /* Определение номера порта, который может быть использован для

взаимодействия клиент-сервер */

143 #define SERV_PORT 9877 /* клиенты и серверы TCP и UDP */

144 #define SERV_PORT_STR "9877" /* клиенты и серверы TCP и UDP */

145 #define UNIXSTR_PATH "/tmp/unix.str" /* потоковые клиенты и серверы

домена Unix */

146 #define UNIXDG_PATH "/tmp/unix.dg" /* клиенты и серверы протокола

дейтаграмм домена Unix */

147 /* Дальнейшие определения сокращают преобразования типов

аргументов-указателей */

  • Читать дальше
  • 1
  • ...
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: