Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка kpi_socket.h

Опции
Развертывание Target:

На этой странице

Ссылка kpi_socket.h

Этот заголовок определяет API для создания и взаимодействия с сокетами в ядре. Возможно создать сокеты в ядре без связанного дескриптора файла. В некоторых случаях, в то время как дескриптор файла не, ссылка на сокет может быть известна. Эти функции могут использоваться для взаимодействия с сокетами в ядре. API подобен сокету пространства пользователя API.

Включенные заголовки

Функции

  • Объявление

    Objective C

    errno_t sock_accept ( socket_t so, struct sockaddr *from, int fromlen, int flags, sock_upcall callback, void *cookie, socket_t *new_so );

    Параметры

    so

    Сокет слушания требуется принять соединение на.

    from

    Указатель на адрес сокета, который будет заполнен в адресом соединение, от.

    fromlen

    Максимальная длина от.

    flags

    Поддержки MESSAGE_DONTWAIT и MESSAGE_USEUPCALL. Если MESSAGE_DONTWAIT будет установлен, примите, то возвратит EWOULDBLOCK, если не будет никаких соединений, готовых быть принятыми. Если MESSAGE_USEUPCALL будет установлен, то создаваемый сокет будет использовать ту же функцию upcall, присоединенную к исходному сокету.

    callback

    Когда событие имеет место на сокете, notifier функционирует, чтобы быть вызванным. Это может быть NULL.

    cookie

    Cookie передал непосредственно обратному вызову.

    new_so

    На успех *new_so будет ссылкой на новый сокет для отслеживания соединения.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Принимает входящее соединение на сокете. См., что 'человек 2 принимает' для получения дополнительной информации. Выделение сокета этим способом создает сокет без связанного дескриптора файла.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_bind ( socket_t so, const struct sockaddr *to );

    Параметры

    so

    Сокет, который будет связан.

    to

    Локальный адрес сокет должен быть связан с.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Связывает сокет с определенным адресом. См., что 'человек 2 связывает' для получения дополнительной информации.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    void sock_close ( socket_t so );

    Параметры

    so

    Сокет для закрытия. Это должно только когда-либо быть сокетом, создаваемым с sock_socket. Закрытие сокета, создаваемого в пространстве пользователя с помощью sock_close, может оставить дескриптор файла, указывающий на закрытый сокет, приводящий к неопределенному поведению.

    Обсуждение

    Закройте сокет.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_connect ( socket_t so, const struct sockaddr *to, int flags );

    Параметры

    so

    Сокет, чтобы быть подключением.

    to

    Удаленный адрес сокет должен соединиться с.

    flags

    Флаги для соединения. Единственный флаг, поддерживаемый до сих пор, является MESSAGE_DONTWAIT. MESSAGE_DONTWAIT выполнит подключение неблокирования. sock_connect сразу возвратится с EINPROGRESS. Когда соединение будет завершено, upcall, если предоставлено, вызовут.

    Возвращаемое значение

    0 на успехе, EINPROGRESS для подключения неблокирования, не завершившегося, иначе errno ошибка.

    Обсуждение

    Инициирует соединение на сокете. См. 'человека 2 подключения' для получения дополнительной информации.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_getpeername ( socket_t so, struct sockaddr *peername, int peernamelen );

    Параметры

    so

    Сокет.

    peername

    Хранение для равноправного имени.

    peernamelen

    Продолжительность хранения для равноправного имени.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получает удаленный адрес подключенного сокета. См. 'человека 2 getpeername'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_getsockname ( socket_t so, struct sockaddr *sockname, int socknamelen );

    Параметры

    so

    Сокет.

    sockname

    Хранение для локального имени.

    socknamelen

    Продолжительность хранения для имени сокета.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получает локальный адрес сокета. См. 'человека 2 getsockname'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_getsockopt ( socket_t so, int level, int optname, void *optval, int *optlen );

    Параметры

    so

    Сокет.

    level

    Уровень опции сокета.

    optname

    Имя опции.

    optval

    Значение опции.

    optlen

    Длина optval, возвращает фактическую длину.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получает опцию сокета. См. 'человека 2 getsockopt'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_gettype ( socket_t so, int *domain, int *type, int *protocol );

    Параметры

    so

    Сокет для проверки.

    domain

    Домен сокета (PF_INET...). Может быть NULL.

    type

    Тип сокета (SOCK_STREAM, SOCK_DGRAM...). Может быть NULL.

    protocol

    Сокетный протокол. Может быть NULL.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получает информацию о сокете. Это - та же информация, использовавшаяся для создания сокета. Если каким-либо из параметров после так является NULL, та информация не получена.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_ioctl ( socket_t so, unsigned long request, void *argp );

    Параметры

    so

    Сокет.

    request

    Имя ioctl.

    argp

    Параметр.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Выполняет ioctl работу на сокете. См. 'человека 2 ioctl'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    int sock_isconnected ( socket_t so );

    Параметры

    so

    Сокет для проверки.

    Возвращаемое значение

    0 - сокет не подключается. 1 - сокет подключается.

    Обсуждение

    Возвраты, подключается ли сокет.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    int sock_isnonblocking ( socket_t so );

    Возвращаемое значение

    0 - сокет блокирует. 1 - сокет не блокирует.

    Обсуждение

    Возвраты, неблокирует ли сокет. В контексте этого KPI, неблокируя средние значения, который функционирует для выполнения операций на сокете, не будет ожидать завершения.

    Чтобы включить или отключить блокирование, используйте FIONBIO ioctl. Параметр является интервалом. Если интервал будет нулем, то сокет блокирует. Если параметр будет ненулевым, то сокет не блокирует.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_listen ( socket_t so, int backlog );

    Параметры

    so

    Сокет.

    backlog

    Максимальная длина очереди незаконченных соединений.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Укажите, что сокет должен начать принимать входящие соединения. См., что 'слушает человек 2'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_receive ( socket_t so, struct msghdr *msg, int flags, size_t *recvdlen );

    Параметры

    so

    Сокет.

    msg

    Сообщение, описывающее, как должны быть получены данные.

    flags

    См. 'человека 2 recvmsg'.

    recvdlen

    Число полученных байтов, то же как возвращаемое значение пространства пользователя recvmsg.

    Возвращаемое значение

    0 на успехе, EWOULDBLOCK при неблокировании и работа заставили бы поток блокировать, иначе errno ошибка.

    Обсуждение

    Получите данные от сокета. Подобный recvmsg. См. 'человека 2 recvmsg' для получения дополнительной информации о получении данных.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_receivembuf ( socket_t so, struct msghdr *msg, mbuf_t *data, int flags, size_t *recvlen );

    Параметры

    so

    Сокет.

    msg

    Сообщение, описывающее, как должны быть получены данные. Может быть NULL. Message_iov проигнорирован.

    data

    По возврату *данные будут ссылкой на mbuf цепочку, содержащую полученные данные. Это устраняет копирование данных из mbufs. Вызывающая сторона ответственна за освобождение mbufs.

    flags

    См. 'человека 2 recvmsg'.

    recvlen

    Максимальное количество байтов для получения в mbuf цепочке. По возврату это значение будет установлено в число полученных байтов, то же как возвращаемое значение пространства пользователя recvmsg.

    Возвращаемое значение

    0 на успехе, EWOULDBLOCK при неблокировании и работа заставили бы поток блокировать, иначе errno ошибка.

    Обсуждение

    Получите данные от сокета. Подобный sock_receive, хотя данные возвращаются как цепочка mbufs. См. 'человека 2 recvmsg' для получения дополнительной информации о получении данных.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_send ( socket_t so, const struct msghdr *msg, int flags, size_t *sentlen );

    Параметры

    so

    Сокет.

    msg

    Сообщение, описывающее, как должны быть отправлены данные. Любые указатели должны указать на данные в ядре.

    flags

    См. 'человека 2 sendmsg'.

    sentlen

    Число байтов отправило.

    Возвращаемое значение

    0 на успехе, EWOULDBLOCK при неблокировании и работа заставили бы поток блокировать, иначе errno ошибка.

    Обсуждение

    Отправьте данные по сокету. Подобный sendmsg. См. 'человека 2 sendmsg' для получения дополнительной информации о передающих данных.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_sendmbuf ( socket_t so, const struct msghdr *msg, mbuf_t data, int flags, size_t *sentlen );

    Параметры

    so

    Сокет.

    msg

    Сообщение, описывающее, как должны быть отправлены данные. Message_iov проигнорирован. сообщением может быть NULL.

    data

    mbuf цепочка данных для отправки.

    flags

    См. 'человека 2 sendmsg'.

    sentlen

    Число байтов отправило.

    Возвращаемое значение

    0 на успехе, EWOULDBLOCK при неблокировании и работа заставили бы поток блокировать, иначе errno ошибка. Независимо от возвращаемого значения будут освобождены mbuf цепочечные 'данные'.

    Обсуждение

    Отправьте данные в mbuf на сокете. Подобный sock_send только данные, которые будут отправлены, взяты от mbuf цепочки.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_setpriv ( socket_t so, int on );

    Параметры

    so

    Сокет, на котором можно изменить флаг SS_PRIV.

    on

    Укажите, должен ли быть установлен флаг SS_PRIV.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Установите привилегированный бит в сокете. Допускает операции, требующие полномочий пользователя root.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_setsockopt ( socket_t so, int level, int optname, const void *optval, int optlen );

    Параметры

    so

    Сокет.

    level

    Уровень опции сокета.

    optname

    Имя опции.

    optval

    Значение опции.

    optlen

    Длина optval.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает опцию сокета. См. 'человека 2 setsockopt'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_shutdown ( socket_t so, int how );

    Параметры

    so

    Сокет.

    how

    SHUT_RD - завершение работы получает. SHUT_WR - завершение работы отправляет. SHUT_RDWR - завершают работу обоих.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Завершите работу одного или обоих направлений соединения. См. 'человека 2 завершения работы' для получения дополнительной информации.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t sock_socket ( int domain, int type, int protocol, sock_upcall callback, void *cookie, socket_t *new_so );

    Параметры

    domain

    Домен сокета (PF_INET, и т.д...).

    type

    Тип сокета (SOCK_STREAM, SOCK_DGRAM, и т.д...).

    protocol

    Сокетный протокол.

    callback

    Когда событие имеет место на сокете, notifier функционирует, чтобы быть вызванным. Это может быть NULL.

    cookie

    Cookie передал непосредственно обратному вызову.

    new_so

    На успех, ссылку на новый сокет.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Выделите сокет. Выделение сокета этим способом создает сокет без связанного дескриптора файла. Для получения дополнительной информации см. 'человека 2 сокета'.

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Обратные вызовы

  • Объявление

    Objective C

    typedef void ( *sock_upcall)( socket_t so, void *cookie, int waitf);

    Параметры

    so

    Ссылка на сокет это готово.

    cookie

    Cookie передал в том, когда создавался сокет.

    waitf

    Указывает, безопасно ли блокировать.

    Обсуждение

    sock_upcall используется сокетом, чтобы уведомить в клиенте ядра, что ожидают данные. Вместо того, чтобы сделать звонки блокирования в ядре, клиент может указать upcall, который вызовут, когда данные будут доступны, или сокет готов к отправке.

    Вызовы к Вашей функции upcall не сериализируют и можно вызвать одновременно от многократных потоков в ядре.

    Ваша функция upcall будет вызвана: когда существуют данные больше, чем низкий водяной знак для чтения, или когда существует пространство для записи, или когда существует соединение для принятия, или когда сокет подключается, или когда сокет закрывается или разъединяется

    Оператор импорта

    Objective C

    #include <kpi_socket.h>;

    Доступность

    Доступный в OS X v10.4 и позже.