Главная страница
Навигация по странице:

  • Константа Описание

  • справочник по Python. мм isbn 9785932861578 9 785932 861578


    Скачать 4.21 Mb.
    Названиемм isbn 9785932861578 9 785932 861578
    Анкорсправочник по Python
    Дата08.05.2022
    Размер4.21 Mb.
    Формат файлаpdf
    Имя файлаBizli_Python-Podrobnyy-spravochnik.440222.pdf
    ТипСправочник
    #518195
    страница53 из 82
    1   ...   49   50   51   52   53   54   55   56   ...   82
    getnameinfo(address, flags)
    Преобразует адрес address сокета в кортеж (host, port), с учетом значения ар- гумента flags. В аргументе address передается кортеж, определяющий адрес, например: (‘www.python.org’,80). В аргументе flags передается битная маска, составленная из следующих флагов с помощью битовой операции ИЛИ:
    Константа
    Описание
    NI_NOFQDN
    Не использовать полностью квалифицированное имя для локального хоста.
    NI_NUMERICHOST
    Вернуть адрес в числовой форме.
    NI_NAMEREQD
    Требуется имя хоста. Возвращает признак ошибки, если для адреса address отсутствует запись DNS.
    NI_NUMERICSERV
    В поле port возвращается строка с номером порта.
    NI_DGRAM
    Указывает, что следует вернуть номер порта службы, поддер- живающей протокол UDP, а не TCP (по умолчанию).
    Основное назначение этой функции состоит в том, чтобы предоставить воз- можность получения дополнительной информации об адресе. Например:
    >>> getnameinfo((‘194.109.137.226’,80),0)
    (‘fang.python.org’, ‘http’)
    >>> getnameinfo((‘194.109.137.226’,80),NI_NUMERICSERV)
    (‘fang.python.org’,’80’)
    getprotobyname(protocolname)
    Преобразует имя протокола (такое как ‘icmp’) в номер протокола (такой как значение IPPROTO_ICMP), который можно будет передать функции socket() в третьем аргументе. Возбуждает исключение socket.error, если имя про- токола не удается опознать. Обычно эта функция используется только для простых (raw) сокетов.

    Модуль socket
    593
    getservbyname(servicename [, protocolname])
    Преобразует имя сетевой службы и имя протокола в номер порта этой службы. Например, вызов getservbyname(‘ftp’, ‘tcp’) вернет число 21. В не- обязательном аргументе protocolname допускается передавать либо значение
    ‘tcp’
    , либо ‘udp’. Возбуждает исключение socket.error, если имя servicename не соответствует ни одной известной службе.
    getservbyport(port [, protocolname])
    Выполняет операцию, обратную функции getservbyname(). По номеру порта в аргументе port эта функция возвращает строку с именем службы, если таковая определена. Например, вызов getservbyport(21, ‘tcp’) вернет стро- вернет стро- стро- стро- ку ‘ftp’. В необязательном аргументе protocolname допускается передавать либо значение ‘tcp’, либо ‘udp’. Возбуждает исключение socket.error, если для указанного номера порта нет определенного имени службы.
    has_ipv6
    Логическая константа, которая принимает значение True, если система поддерживает протокол IPv6.
    htonl(x)
    Преобразует 32-битные целые числа с аппаратным порядком следования байтов в 32-битные целые числа с сетевым порядком следования байтов
    (прямой порядок, или big-endian).
    htons(x)
    Преобразует 16-битные целые числа с аппаратным порядком следования байтов в 16-битные целые числа с сетевым порядком следования байтов
    (прямой порядок, или big-endian).
    inet_aton(ip_string)
    Преобразует адреса IPv4, представленные в виде строки (например,
    ‘135.128.11.209’
    ), в 32-битный упакованный двоичный формат для последую- щего использования в качестве 32-битового двоичного адреса. Возвращает строку из четырех двоичных байтов. Может использоваться для передачи адресов функциям, написанным на языке C, или когда требуется упако-
    C, или когда требуется упако-
    , или когда требуется упако- вать данные в структуру для последующей передачи другим программам.
    Не поддерживает адреса IPv6.
    inet_ntoa(packedip)
    Преобразует адрес IPv4 в двоичном упакованном формате в строку, с иcпользованием привычной точечной нотации (например, ‘135.128.11.209’).
    В аргументе packedip передается строка из четырех байтов, содержащая
    32-битный двоичный IP-адрес. Эта функция может использоваться, когда адрес возвращается функцией, написанной на языке C, или при распако-
    C, или при распако-
    , или при распако- вывании структур с данными. Не поддерживает адреса IPv6.
    inet_ntop(address_family, packed_ip)
    Преобразует IP-адрес packed_ip в двоичном упакованном формате в стро- ку, такую как ‘123.45.67.89’. Аргумент address_family определяет семейство адресов и обычно в нем передается значение AF_INET или AF_INET6. Может

    594
    Глава 21. Работа с сетью и сокеты использоваться для получения строки с сетевым адресом из последователь- ности двоичных байтов (например, из содержимого низкоуровневого сете- вого пакета).
    inet_pton(address_family, ip_string)
    Преобразует IP-адреса, такие как ‘123.45.67.89’, в строку упакованных байтов.
    Аргумент address_family определяет семейство адресов, и обычно в нем пере- дается значение AF_INET или AF_INET6. Эта функция может использоваться для вставки сетевых адресов в двоичном формате в двоичные пакеты данных.
    ntohl(x)
    Преобразует 32-битные целые числа с сетевым порядком следования бай- тов (прямой порядок, или big-endian) в 32-битные целые числа с аппарат- big-endian) в 32-битные целые числа с аппарат-
    -endian) в 32-битные целые числа с аппарат- endian) в 32-битные целые числа с аппарат-
    ) в 32-битные целые числа с аппарат- ным порядком следования байтов.
    ntohs(x)
    Преобразует 16-битные целые числа с сетевым порядком следования бай- тов (прямой порядок, или big-endian) в 16-битные целые числа с аппарат- big-endian) в 16-битные целые числа с аппарат-
    -endian) в 16-битные целые числа с аппарат- endian) в 16-битные целые числа с аппарат-
    ) в 16-битные целые числа с аппарат- ным порядком следования байтов.
    setdefaulttimeout(timeout)
    Устанавливает предельное время ожидания для вновь создаваемых объ- ектов сокетов. В аргументе timeout передается число с плавающей точкой, определяющее интервал времени в секундах. Может передаваться значе- ние None, чтобы указать на отсутствие предельного времени ожидания (по умолчанию).
    socket(family, type [, proto])
    По заданным значениям семейства адресов, типа сокета и номера прото- заданным значениям семейства адресов, типа сокета и номера прото- заданным значениям семейства адресов, типа сокета и номера прото- значениям семейства адресов, типа сокета и номера прото- значениям семейства адресов, типа сокета и номера прото- семейства адресов, типа сокета и номера прото- семейства адресов, типа сокета и номера прото- адресов, типа сокета и номера прото- адресов, типа сокета и номера прото-
    , типа сокета и номера прото- типа сокета и номера прото- сокета и номера прото- сокета и номера прото- и номера прото- и номера прото- номера прото- номера прото- прото- прото- кола создает новый сокет. Аргумент family определяет семейство адресов, а аргумент type – тип сокета, как обсуждалось в первой части этого раз- дела. Для открытия соединения по протоколу TCP можно использовать вызов socket(AF_INET, SOCK_STREAM). Для открытия соединения по протоколу
    UDP можно использовать вызов socket(AF_INET, SOCK_DGRAM). Возвращает эк- земпляр класса SocketType (описывается ниже).
    Аргумент с номером протокола, как правило, не передается (и по умолча- нию принимается значение 0). Обычно он используется только при созда- нии простых сокетов (SOCK_RAW) и может принимать значение, зависящее от используемого семейства адресов. Ниже приводится список всех номе- ров протоколов, которые в языке Python могут использоваться совместно с семействами адресов AF_INET и AF_INET6, в зависимости от наличия их под- держки в системе:
    Константа
    Описание
    IPPROTO_AH
    Заголовок аутентификации в IPv6
    IPPROTO_BIP
    Протокол Banyan VINES (Banyan Virtual Network System, систе-
    Banyan VINES (Banyan Virtual Network System, систе-
    VINES (Banyan Virtual Network System, систе-
    VINES (Banyan Virtual Network System, систе-
    (Banyan Virtual Network System, систе-
    Banyan Virtual Network System, систе-
    Virtual Network System, систе-
    Virtual Network System, систе-
    Network System, систе-
    Network System, систе-
    System, систе-
    System, систе-
    , систе- ма распределенной сети)
    IPPROTO_DSTOPTS
    Параметры получателя IPv6

    Модуль socket
    595
    Константа
    Описание
    IPPROTO_EGP
    Протокол внешней маршрутизации (EGP)
    IPPROTO_EON
    ISO CNLP (Connectionless Network Protocol, сетевой протокол без создания соединения)
    IPPROTO_ESP
    Протокол шифрования данных в IPv6
    IPPROTO_
    FRAGMENT
    Заголовок фрагмента в IPv6
    IPPROTO_GGP
    Протокол межсетевого сопряжения (RFC 823)
    IPPROTO_GRE
    Общая инкапсуляция маршрутов (RFC 1701)
    IPPROTO_HELLO
    Протокол HELLO компании FuzzBall
    IPPROTO_HOPOPTS
    Параметры транзитных узлов в IPv6
    IPPROTO_ICMP
    IPv4 ICMP (Internet Control Message Protocol, протокол управляющих сообщений)
    IPPROTO_ICMPV6
    IPv6 ICMP
    IPPROTO_IDP
    XNS IDP (Xerox Network Services – Internet Datagram Protocol, сетевые службы Xerox – протокол дейтаграмм Интернета)
    IPPROTO_IGMP
    Протокол управления группами
    IPPROTO_IP
    IPv4
    IPPROTO_IPCOMP
    Протокол сжатия данных IP
    IPPROTO_IPIP
    Туннелирование IP через IP
    IPPROTO_IPV4
    Заголовок IPv4
    IPPROTO_IPV6
    Заголовок IPv6
    IPPROTO_MOBILE
    Мобильный протокол IP
    IPPROTO_ND
    Протокол Netdisk
    IPPROTO_NONE
    IPv6, заголовок «нет следующего пакета» (последний пакет в по-
    6, заголовок «нет следующего пакета» (последний пакет в по- следовательности)
    IPPROTO_PIM
    Протокол независимой групповой передачи
    IPPROTO_PUP
    Универсальный протокол передачи пакетов компании Xerox
    (PARC Universal Packet, PUP)
    IPPROTO_RAW
    Низкоуровневый протокол IP
    IPPROTO_ROUTING
    Заголовок маршрутизации IPv6
    IPPROTO_RSVP
    Резервирование ресурса
    IPPROTO_TCP
    Протокол TCP
    IPPROTO_TP
    Транспортный протокол OSI (TP-4)
    IPPROTO_UDP
    Протокол UDP
    IPPROTO_VRRP
    Протокол резервирования виртуального маршрутизатора
    IPPROTO_XTP
    Протокол скоростной передачи

    596
    Глава 21. Работа с сетью и сокеты
    Н
    иже перечислены номера протоколов, используемых совместно с семей- ством адресов AF_BLUETOOTH:
    Константа
    Описание
    BTPROTO_L2CAP
    Протокол управления логическим каналом с самонастройкой
    BTPROTO_HCI
    Интерфейс хост-контроллера
    BTPROTO_RFCOMM
    Протокол замены кабеля
    BTPROTO_SCO
    Протокол синхронного канала с созданием логического соеди- нения
    socketpair([family [, type [, proto ]]])
    Создает пару объектов сокетов, использующих указанное семейство адре- сов family, тип type и протокол proto. Аргументы имеют тот же смысл, что и в функции socket(). Эта функция может использоваться только для соз- дания сокетов домена UNIX (family=AF_UNIX). Аргумент type может прини- мать только значение SOCK_DGRAM или SOCK_STREAM. Если в аргументе type передается значение SOCK_STREAM, создается объект, известный как канал
    потока
    . В аргументе proto обычно передается значение 0 (по умолчанию).
    В основном эта функция используется для организации канала взаимодей- ствия с процессами, которые создаются функцией os.fork(). Например, ро- дительский процесс может с помощью функции socketpair() создать пару сокетов и вызвать функцию os.fork(). После этого родительский и дочер- ний процесс получают возможность взаимодействовать друг с другом, ис- пользуя эти сокеты.
    Сокеты в программе представлены экземплярами класса SocketType. Сокет
    s
    обладает следующими методами:
    s.accept()
    Принимает соединение и возвращает кортеж (conn, address), где в поле conn возвращается новый объект сокета, который может использоваться для приема и передачи данных через соединение, а в поле address возвращается адрес сокета с другой стороны соединения.
    s.bind(address)
    Присваивает сокету указанный адрес address. Формат представления адре- са зависит от семейства адресов. В большинстве случаев это кортеж вида
    (
    hostname,
    port). Для IP-адресов пустая строка представляет INADDR_ANY (лю- бой адрес), а строка ‘’ представляет широковещательный адрес
    INADDR_BROADCAST
    . Значение INADDR_ANY (пустая строка) в поле hostname ис- пользуется, чтобы показать, что сервер может принимать соединения на любом сетевом интерфейсе. Это значение часто используется, когда сервер имеет несколько сетевых интерфейсов. Значение INADDR_BROADCAST (‘
    ) в поле hostname применяется, когда сокет предполагается использо- вать для рассылки широковещательных сообщений.
    s.close()
    Закрывает сокет. Этот метод вызывается также, когда объект сокета ути- сокет. Этот метод вызывается также, когда объект сокета ути- сокет. Этот метод вызывается также, когда объект сокета ути-
    . Этот метод вызывается также, когда объект сокета ути-
    Этот метод вызывается также, когда объект сокета ути- лизируется сборщиком мусора.

    Модуль socket
    597
    s.connect(address)
    У
    станавливает соединение с удаленным узлом, имеющим адрес address.
    Формат адреса address зависит от семейства, к которому он относится, но обычно в этом аргументе передается кортеж (hostname, port). В случае ошибки возбуждает исключение socket.error. При подключении к серверу, выполняющемуся на том же компьютере, в поле hostname можно передавать имя хоста ‘localhost’.
    s.connect_ex(address)
    Устанавливает соединение, как и функция connect(address), но в случае успеха возвращает 0, а в случае ошибки – значение errno.
    s.fileno()
    Возвращает файловый дескриптор сокета.
    s.getpeername()
    Возвращает адрес удаленного узла, с которым установлено соединение.
    Обычно возвращает кортеж (ipaddr, port), но вообще формат возвращаемо- го значения зависит от используемого семейства адресов. Этот метод под- держивается не во всех системах.
    s.getsockname()
    Возвращает собственный адрес сокета. Обычно возвращаемым значением является кортеж (ipaddr, port).
    s.getsockopt(level, optname [, buflen])
    Возвращает значение параметра сокета. Аргумент level – уровень параме- уровень параме- параме- параме- тра. Для получения параметров уровня сокета в нем передается значение
    SOL_SOCKET
    , а для получения параметров уровня протокола – номер прото- кола, такой как IPPROTO_IP. Аргумент optname определяет имя параметра.
    Если аргумент buflen отсутствует, предполагается, что параметр имеет целочисленное значение, которое и возвращается методом. Если аргумент
    buflen
    указан, он определяет максимальный размер буфера, куда долж- но быть записано значение параметра. Этот буфер возвращается методом в виде строки байтов. Интерпретация содержимого буфера с помощью мо- дуля struct или других инструментов целиком возлагается на вызываю- щую программу.
    В следующей таблице перечислены параметры сокета, поддерживаемые в языке Python. Большая часть этих параметров относится к расширен-
    Python. Большая часть этих параметров относится к расширен-
    . Большая часть этих параметров относится к расширен- ному API сокетов и содержит низкоуровневую информацию о сети. Более подробное описание параметров можно найти в документации и в специ- ализированной литературе. Имена типов, встречающиеся в столбце «Зна- чение», соответствуют стандартным типам языка C, ассоциированным со значением и используемым в стандартном программном интерфейсе соке- тов. Не все параметры поддерживаются в каждой из систем.
    Ниже перечислены наиболее часто используемые имена параметров уров- ня SOL_SOCKET:

    598
    Глава 21. Работа с сетью и сокеты
    Имя параметра
    Значение
    Описание
    SO_ACCEPTCONN
    0, 1
    Разрешает или запрещает прием соединения.
    SO_BROADCAST
    0, 1
    Разрешает или запрещает передачу широкове- щательных сообщений.
    SO_DEBUG
    0, 1
    Разрешает или запрещает запись отладочной информации.
    SO_DONTROUTE
    0, 1
    Разрешает или запрещает передавать сообще- ния в обход таблицы маршрутизации.
    SO_ERROR
    int
    Возвращает признак ошибки.
    SO_EXCLUSIVEADDRUSE
    0, 1
    Разрешает или запрещает возможность при- сваивания того же адреса и порта другому со- кету. Этот параметр отключает действие пара- параметр отключает действие пара- параметр отключает действие пара- отключает действие пара- отключает действие пара- действие пара- действие пара- пара- пара- метра SO_REUSEADDR.
    SO_KEEPALIVE
    0, 1
    Разрешает или запрещает периодическую передачу служебных сообщений другой сторо- не, для поддержания соединения в активном состоянии.
    SO_LINGER
    linger
    Откладывает вызов метода close(), если в бу- если в бу- в бу- в бу- бу- бу- фере передачи имеются данные. Значение типа linger представляет собой упакованную двоич- ную строку, содержащую два 32-битных целых числа
    (
    onoff
    ,
    seconds
    )
    SO_OOBINLINE
    0, 1
    Разрешает или запрещает добавление внеоче- редных сообщений во входной поток.
    SO_RCVBUF
    int
    Размер приемного буфера (в байтах).
    SO_RCVLOWAT
    int
    Определяет минимальное количество байтов, которые должны быть прочитаны, прежде чем функция select() будет интерпретировать со- кет, как доступный для чтения.
    SO_RCVTIMEO
    timeval
    Максимальное время ожидания в секундах при приеме данных. Значение timeval пред- ставляет собой упакованную двоичную строку, содержащую два 32-битных целых числа без знака (seconds, microseconds)
    SO_REUSEADDR
    0, 1
    Разрешает или запрещает повторное использо- вание локальных адресов.
    SO_REUSEPORT
    0, 1
    Разрешает или запрещает нескольким процес- сам присваивать сокетам один и тот же адрес, при условии, что этот параметр установлен в значение 1 во всех процессах.
    SO_SNDBUF
    int
    Размер передающего буфера (в байтах).
    SO_SNDLOWAT
    int
    Определяет, какое количество байтов должно остаться в передающем буфере, прежде чем функция select() будет интерпретировать со- кет, как доступный для записи.

    Модуль socket
    1   ...   49   50   51   52   53   54   55   56   ...   82


    написать администратору сайта