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

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

Шрифт:

40 #endif

41 /* Три заголовочных файла обычно нужны для вызова ioctl

42 для сокета/файла: <sys/ioctl.h>, <sys/filio.h>,

43 <sys/sockio.h> */

44 #ifdef HAVE_SYS_IOCTL_H

45 #include <sys/ioctl.h>

46 #endif

47 #ifdef HAVE_SYS_FILIO_H

48 #include <sys/filio.h>

49 #endif

50 #ifdef HAVE_SYS_SOCKIO_H

51 #include <sys/sockio.h>

52 #endif

53 #ifdef HAVE_PTHREAD_H

54 #include <pthread.h>

55 #endif

56 #ifdef HAVE_NET_IF_DL_H

57 #include <net/if_dl.h>

58 #endif

59 #ifdef HAVE_NETINET_SCTP_H

60 #include <netinet/sctp.h>

61 #endif

62 /* OSF/1 фактически запрещает recv и send в <sys/socket.h> */

63 #ifdef __osf__

64 #undef recv

65 #undef send

66 #define recv(a,b,c,d) recvfrom(a,b,c,d,0,0)

67 #define send(a,b,c,d) sendto(a,b,c,d,0,0)

68 #endif

69 #ifndef INADDR_NONE

70 #define INADDR_NONE 0xffffffff /* должно было быть в <netinet/in.h> */

71 #endif

72 #ifndef SHUT_RD /* три новые константы Posix.1g */

73 #define SHUT_RD 0 /* отключение чтения */

74 #define SHUT_WR 1 /* отключение записи */

75 #define SHUT_RDWR 2 /* отключение чтения и записи */

76 #endif

77 #ifndef INET_ADDRSTRLEN

78 #define INET_ADDRSTRLEN 16 /* "ddd.ddd.ddd.ddd\0"

79 1234567890123456 */

80 #endif

81 /* Нужно, даже если нет поддержки IPv6, чтобы мы всегда могли

82 разместить в памяти буфер требуемого размера без директив #ifdef */

83 #ifndef INET6_ADDRSTRLEN

84 #define INET6_ADDRSTRLEN 46 /* максимальная длина строки адреса IPv6:

85 "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx" или

86 "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:ddd.ddd.ddd.ddd\0"

87 1234567890123456789012345678901234567890123456 */

88 #endif

89 /* Определяем bzero как макрос, если эта функция отсутствует в

стандартной библиотеке С */

90 #ifndef HAVE_BZERO

91 #define bzero(ptr,n) memset(ptr, 0, n)

92 #endif

93 /* В более старых распознавателях отсутствует gethostbyname2 */

94 #ifndef HAVE_GETHOSTBYNAME2

95 #define gethostbyname2(host, family) gethostbyname((host))

96 #endif

97 /* Структура, возвращаемая функцией recvfrom_flags */

98 struct in_pktinfo {

99 struct in_addr ipi_addr; /* IPv4-адрес получателя */

100 int ipi_ifindex; /* полученный индекс интерфейса */

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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