Как обозначается розетка
Обозначение розеток на схемах
Одним из наиболее распространенных элементов домашней электросети является электрическая розетка. На схеме она может выглядеть в виде различных обозначений, которые зависят от типа и конструкции этого устройства.
Важнейшим этапом обустройства электрической проводки является составление плана размещения всех ее элементов. Грамотное нанесение на электрическую схему всех составных частей электросети обеспечивает правильность планирования необходимого количества материалов, а также высокий уровень электробезопасности. Правильно составленная схема значительно облегчает выбор типов необходимого оборудования.
План электрической проводки составляется с учетом масштаба помещений и особенностей его планировки.
Совет! Традиционно для составления подобных чертежей используется однолинейная схема, которая позволяет отобразить все элементы сети, не загромождая чертеж большим количеством линий, изображающих соединительные провода.
Руководящие документы
Для того чтобы унифицировать обозначения, используемые в электрических схемах, еще в советское время был принят ГОСТ 21.614-88 «Изображения условные графические электрооборудования и проводок на планах».
В соответствии с этим документом, для обозначения всех элементов электросети используются простейшие геометрические фигуры, позволяющие легко наносить, а также идентифицировать тот или иной элемент на электрической схеме.
Жесткие требования к выполнению подобных чертежей исключают путаницу и двоякое толкование всех нанесенных на схеме символов, что крайне важно при выполнении монтажных работ в электрической сети.
Обозначения элементов открытой установки
Простейшая двухполюсная электрическая розетка открытой установки без заземляющего контакта изображается на электрической схеме в виде полукруга с чертой, проведенной перпендикулярно к его выпуклой части.
Обозначение сдвоенной розетки отличается от предыдущего наличием двух параллельных линий. Графический символ, соответствующий трехполюсному изделию, представляет собой полукруг, к выпуклой части которого примыкают три линии, сходящиеся в одной точке и расположенные веером.
Для обозначения розетки с заземляющим контактом к ее изображению добавляется горизонтальная черта, которая является касательной к верхней точке полукруга.
Розетки для скрытой электропроводки
Скрытая электропроводка является наиболее распространенным типом домашней электрической сети. Для ее прокладки используются устройства, встраиваемые в стену при помощи специальных монтажных коробок.
Единственным отличием обозначения подобных розеток от приведенного выше рисунка является перпендикуляр, опускаемый от середины прямого отрезка к центру окружности.
Устройства с повышенной защитой от пыли и влаги
Рассмотренные розетки не отличаются высоким уровнем защиты от проникновения в их корпус твердых предметов, а также влаги. Такие изделия могут применяться во внутренних помещениях, где условия эксплуатации исключают подобные воздействия. Что касается устройств, предназначенных для установки на открытом воздухе или, например, в ванных комнатах, то согласно принятой классификации степень их защиты должна быть ниже IP44 (где первая цифра соответствует уровню защиты от пыли, вторая – от влаги).
Такие розетки обозначаются на схеме в виде полностью закрашенного черным цветом полукруга. Как и в предыдущем случае, двухполюсные и трехполюсные влагозащищенные розетки обозначаются соответствующим количеством отрезков, примыкающих к выпуклой части полукруга.
Выключатели
Выключатель на схеме обозначается в виде окружности, к которой под углом 45 с наклоном в правую сторону проведена черта, имеющая на конце один, два или три перпендикулярных отрезка (в зависимости от количества клавиш изображаемого выключателя).
Изображение выключателей скрытой установки такое же, только отрезки на конце наклонной черты проводятся в обе стороны от нее на одинаковое расстояние.
Влагостойкие изделия обозначаются окружностью черного цвета.
Стоит обратить внимание на изображение проходных выключателей, которое напоминает два обычных выключателя, зеркально отраженных от центра одной окружности.
Блоки розеток
Нередко в плане домашней электросети необходимо предусмотреть установку блоков, включающих в себя различное количество наиболее распространенных элементов – розеток и выключателей.
Простейший блок, содержащий в своем составе двухполюсную розетку, и одноклавишный выключатель скрытой установки изображается в виде полукруга, от центра которого проведен перпендикуляр, а также линия под углом 45 , соответствующая одноклавишному выключателю.
Аналогичным образом наносятся на схему блоки, содержащие различное количество розеток и выключателей. Например, блок скрытой установки, имеющий в своем составе двухполюсную розетку, а также одноклавишный и двухклавишный выключатели, имеет обозначение:
Таким образом, обозначение элементов на электрической схеме выполняется таким образом, чтобы обеспечить наибольшую легкость в ее составлении и чтении. Стоит один раз запомнить основные принципы построения подобных схем, чтобы в дальнейшем с легкостью пользоваться планом квартирной электропроводки любой сложности.
HOWTO по программированию сокетов- документация Python 3.9.0
- Автор
-
Гордон Макмиллан
Аннотация
Розетки используются почти везде, но являются одними из самых неправильно понятые технологии вокруг. Это обзор розеток на 10 000 футов. На самом деле это не учебник - вам еще нужно поработать, чтобы что-то получить оперативный. Он не касается тонких моментов (а их очень много), но Я надеюсь, что это даст вам достаточно знаний, чтобы начать их прилично использовать.
Розетки
Я буду говорить только о сокетах INET (то есть IPv4), но они составляют не менее 99% используемые розетки. И я буду говорить только о сокетах STREAM (т. Е. TCP) - если только вы знать, что вы делаете (в этом случае этот HOWTO не для вас!), вы получите лучшее поведение и производительность от сокета STREAM, чем что-либо еще. Я буду попытаться раскрыть тайну того, что такое сокет, а также дать несколько советов о том, как работа с блокирующими и неблокирующими розетками.Но я начну с разговора о блокировка розеток. Вам нужно знать, как они работают, прежде чем начинать неблокирующие розетки.
Отчасти проблема с пониманием этих вещей состоит в том, что «сокет» может означать количество неуловимо разных вещей, в зависимости от контекста. Итак, сначала давайте сделаем различие между «клиентским» сокетом - конечной точкой разговора и «Серверная» розетка, которая больше похожа на операторский коммутатор. Клиент приложение (например, ваш браузер) использует исключительно «клиентские» сокеты; то веб-сервер, с которым он разговаривает, использует как «серверные», так и «клиентские» сокеты.
История
Из различных форм МПК , розетки, безусловно, самые популярные. На любой платформе есть вероятно, будут другие формы IPC, которые быстрее, но для кроссплатформенное общение, сокеты - это почти единственная игра в городе.
Они были изобретены в Беркли как часть разновидности BSD Unix. Они распространяются как лесной пожар с Интернетом. Не зря - комбинация розеток. с INET невероятно легко общаться с произвольными машинами по всему миру (по крайней мере, по сравнению с другими схемами).
Создание сокета
Грубо говоря, когда вы нажимали на ссылку, которая привела вас на эту страницу, ваш браузер сделал что-то вроде следующего:
# создать INET, STREAMing сокет s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) # теперь подключаемся к веб-серверу через порт 80 - обычный http порт s.connect (("www.python.org", 80))
Когда подключение
завершается, сокет s
может использоваться для отправки в запросе текста страницы.Тот же сокет будет читать ответить, а затем быть уничтоженным. Правильно, уничтожено. Клиентские сокеты обычно используются только для одного обмена (или небольшого набора последовательных обмены).
То, что происходит на веб-сервере, немного сложнее. Во-первых, веб-сервер создает «серверный сокет»:
# создать INET, STREAMing сокет serversocket = socket.socket (socket.AF_INET, socket.SOCK_STREAM) # привязываем сокет к общедоступному хосту и известному порту serversocket.bind ((socket.gethostname (), 80)) # стать серверным сокетом серверный сокет.слушать (5)
Следует отметить пару моментов: мы использовали socket.gethostname ()
, чтобы сокет будет видно внешнему миру. Если бы мы использовали s.bind (('localhost', 80))
или s.bind (('127.0.0.1', 80))
у нас все равно будет сокет «сервер», но тот, который был виден только внутри той же машины. s.bind (('', 80))
указывает, что сокет доступен по любому адресу, с которым встречается машина имеют.
Второе замечание: порты с небольшим номером обычно зарезервированы для «хорошо известных» сервисы (HTTP, SNMP и т. д.).Если вы играете, используйте хорошее большое число (4 цифры).
Наконец, аргумент listen
сообщает библиотеке сокетов, что мы хотим, чтобы поставьте в очередь до 5 запросов на соединение (нормальный максимум), прежде чем отказывать извне соединения. Если остальная часть кода написана правильно, этого должно быть достаточно.
Теперь, когда у нас есть «серверный» сокет, прослушивающий порт 80, мы можем ввести основной цикл веб-сервера:
, пока True: # принимать подключения извне (клиентский сокет, адрес) = серверный сокет.accept () # теперь что-нибудь сделаем с клиентским сокетом # в данном случае мы представим, что это многопоточный сервер ct = client_thread (клиентский сокет) ct.run ()
На самом деле существует 3 основных способа работы этого цикла - отправка поток для обработки clientocket
, создайте новый процесс для обработки clientocket
, или реструктурируйте это приложение для использования неблокирующих сокетов, и мультиплексирование между нашим «серверным» сокетом и любым активным клиентским сокетом
с использованием выберите
.Подробнее об этом позже. Сейчас важно понять, это: это все «серверный» сокет. Он не отправляет никаких данных. Это не получать любые данные. Он просто производит «клиентские» сокеты. Каждому клиентскому сокету
соответствует создается в ответ на , другой «клиентский» сокет, выполняющий connect ()
с хост и порт, к которым мы привязаны. Как только мы создали этот клиентский сокет
, мы вернитесь к прослушиванию для получения дополнительных подключений. Два «клиента» могут свободно общаться в чате. вверх - они используют какой-то динамически выделенный порт, который будет переработан, когда разговор заканчивается.
МПК
Если вам нужен быстрый IPC между двумя процессами на одной машине, вам следует изучить каналы или разделяемая память. Если вы решили использовать сокеты AF_INET, привяжите Сокет «server» на «localhost»
. На большинстве платформ это займет сократить несколько слоев сетевого кода и работать немного быстрее.
См. Также
Многопроцессорная модель
интегрирует межплатформенные IPC в более высокий уровень API.
Использование розетки
Первое, на что следует обратить внимание, это то, что «клиентский» сокет веб-браузера и Интернет серверные «клиентские» сокеты такие же звери.То есть это «одноранговый» разговор. Или, другими словами, в качестве дизайнера вам придется решить, каковы правила этикета для разговора . Обычно connect
ing socket начинает диалог, отправляя запрос, или возможно знак. Но это дизайнерское решение, а не розетки.
Теперь есть два набора глаголов, которые можно использовать для общения. Вы можете использовать отправить
и recv
, или вы можете превратить свой клиентский сокет в файлового зверя и используйте для чтения
и для записи
.Именно так Java представляет свои сокеты. Я не собираюсь здесь говорить об этом, но хочу предупредить, что вам нужно использовать заподлицо
на розетки. Это буферизованные «файлы», и распространенной ошибкой является напишите
что-нибудь, а затем прочтите
для ответа. Без промывки
дюймов там вы можете ждать ответа вечно, потому что запрос все еще может быть в ваш выходной буфер.
Теперь мы подошли к главному камню преткновения розеток - send
и recv
работают. в сетевых буферах.Они не обязательно обрабатывают все передаваемые вами байты их (или ожидайте от них), потому что их основное внимание уделяется работе с сетью буферы. Как правило, они возвращаются, когда связанные сетевые буферы были заполнены ( отправить
) или опустошены ( recv
). Затем они сообщают вам, сколько байтов они обработано. - это ваша ответственность - позвонить им еще раз, пока ваше сообщение не будет полностью разобрались.
Когда recv
возвращает 0 байтов, это означает, что другая сторона закрыта (или находится в процесс закрытия) соединение.Вы больше не получите данных о это соединение. Когда-либо. Возможно, вы сможете успешно отправить данные; Я поговорю подробнее об этом позже.
Протокол, подобный HTTP, использует сокет только для одной передачи. Клиент отправляет запрос, затем читает ответ. Это оно. Сокет отбрасывается. Это значит, что клиент может определить конец ответа, получив 0 байтов.
Но если вы планируете повторно использовать розетку для дальнейших передач, вам необходимо что нет EOT на розетке. Повторюсь: если розетка отправить
или recv
возвращается после обработки 0 байтов, соединение было сломан. Если соединение , а не разорвано, вы можете подождать recv
навсегда, потому что сокет , а не скажет вам, что больше нечего читать (пока). Если вы немного подумаете об этом, то поймете, что фундаментальная истина сокетов: сообщения должны иметь фиксированную длину (фу), или быть гастроном
- документация Python 3.3.7
Аннотация
Розетки используются почти везде, но являются одними из самых неправильно понятые технологии вокруг. Это обзор розеток на 10 000 футов. На самом деле это не учебник - вам еще нужно поработать, чтобы что-то получить оперативный. Он не касается тонких моментов (а их очень много), но Я надеюсь, что это даст вам достаточно знаний, чтобы начать их прилично использовать.
Розетки
Я буду говорить только об INET (т.е. IPv4), но они составляют не менее 99% используемые розетки. И я буду говорить только о сокетах STREAM (т. Е. TCP) - если только вы знать, что вы делаете (в этом случае этот HOWTO не для вас!), вы получите лучшее поведение и производительность от сокета STREAM, чем что-либо еще. Я буду попытаться раскрыть тайну того, что такое сокет, а также дать несколько советов о том, как работа с блокирующими и неблокирующими розетками. Но я начну с разговора о блокировка розеток. Вам нужно знать, как они работают, прежде чем начинать неблокирующие розетки.
Отчасти проблема с пониманием этих вещей состоит в том, что «сокет» может означать количество неуловимо разных вещей, в зависимости от контекста. Итак, сначала давайте сделаем различие между «клиентским» сокетом - конечной точкой разговора и «Серверная» розетка, которая больше похожа на операторский коммутатор. Клиент приложение (например, ваш браузер) использует исключительно «клиентские» сокеты; то веб-сервер, с которым он разговаривает, использует как «серверные», так и «клиентские» сокеты.
История
Из различных форм МПК , розетки, безусловно, самые популярные.На любой платформе есть вероятно, будут другие формы IPC, которые быстрее, но для кроссплатформенное общение, сокеты - это почти единственная игра в городе.
Они были изобретены в Беркли как часть разновидности BSD Unix. Они распространяются как лесной пожар с Интернетом. Не зря - комбинация розеток. с INET невероятно легко общаться с произвольными машинами по всему миру (по крайней мере, по сравнению с другими схемами).
Создание сокета
Грубо говоря, когда вы нажимали на ссылку, которая привела вас на эту страницу, ваш браузер сделал что-то вроде следующего:
# создать INET, STREAMing сокет s = розетка.сокет (socket.AF_INET, socket.SOCK_STREAM) # теперь подключаемся к веб-серверу через порт 80 - обычный http порт s.connect (("www.python.org", 80))
Когда соединение завершится, сокет s может использоваться для отправки в запросе текста страницы. Тот же сокет будет читать ответить, а затем быть уничтоженным. Правильно, уничтожено. Клиентские сокеты обычно используются только для одного обмена (или небольшого набора последовательных обмены).
То, что происходит на веб-сервере, немного сложнее.Во-первых, веб-сервер создает «серверный сокет»:
# создать INET, STREAMing сокет serversocket = socket.socket (socket.AF_INET, socket.SOCK_STREAM) # привязываем сокет к общедоступному хосту и известному порту serversocket.bind ((socket.gethostname (), 80)) # стать серверным сокетом serversocket.listen (5)
Следует отметить пару вещей: мы использовали socket.gethostname (), чтобы сокет будет видно внешнему миру. Если бы мы использовали s.bind (('localhost', 80)) или s.bind (('127.0.0.1 ', 80)) у нас остался бы «серверный» сокет, но тот, который был виден только внутри той же машины. s.bind ((', 80)) указывает, что сокет доступен по любому адресу, с которым встречается машина имеют.
Второе, на что следует обратить внимание: порты с небольшим номером обычно зарезервированы для «хорошо известных» сервисы (HTTP, SNMP и т. д.). Если вы играете, используйте хорошее большое число (4 цифры).
Наконец, аргумент listen сообщает библиотеке сокетов, что мы хотим, чтобы она поставьте в очередь до 5 запросов на соединение (нормальный максимум), прежде чем отказывать извне соединения.Если остальная часть кода написана правильно, этого должно быть достаточно.
Теперь, когда у нас есть «серверный» сокет, прослушивающий порт 80, мы можем ввести основной цикл веб-сервера:
, пока True: # принимать подключения извне (клиентский сокет, адрес) = serversocket.accept () # теперь что-нибудь сделаем с клиентским сокетом # в данном случае мы представим, что это многопоточный сервер ct = client_thread (клиентский сокет) ct.run ()
На самом деле существует 3 основных способа работы этого цикла - отправка поток для обработки клиентского сокета, создайте новый процесс для обработки clientocket или реструктурируйте это приложение, чтобы использовать неблокирующие сокеты, и мультиплексирование между нашим «серверным» сокетом и любыми активными клиентскими сокетами, использующими Выбрать.Подробнее об этом позже. Сейчас важно понять, это: это все «серверный» сокет. Он не отправляет никаких данных. Это не получать любые данные. Он просто производит «клиентские» сокеты. Каждый клиентский сокет создается в ответ на других «клиентских» сокетов, выполняющих соединение () с хост и порт, к которым мы привязаны. Как только мы создали этот клиентский сокет, мы вернитесь к прослушиванию для получения дополнительных подключений. Два «клиента» могут свободно общаться в чате. вверх - они используют какой-то динамически выделенный порт, который будет переработан, когда разговор заканчивается.
МПК
Если вам нужен быстрый IPC между двумя процессами на одной машине, вам следует изучить каналы или разделяемая память. Если вы решили использовать сокеты AF_INET, привяжите Сокет «server» на «localhost». На большинстве платформ это займет сократить несколько слоев сетевого кода и работать немного быстрее.
См. Также
Многопроцессорность интегрирует межплатформенный IPC в более высокий уровень API.
Использование розетки
Первое, что следует отметить, это то, что "клиентский" сокет веб-браузера и Интернет серверные «клиентские» сокеты такие же звери.То есть это «одноранговый» разговор. Или, другими словами, в качестве дизайнера вам придется решить, каковы правила этикета для разговора . Обычно Соединительный сокет начинает диалог, отправляя запрос, или возможно знак. Но это дизайнерское решение, а не розетки.
Теперь есть два набора глаголов, которые можно использовать для общения. Вы можете использовать send и recv, или вы можете превратить свой клиентский сокет в файлового зверя и используйте чтение и запись.Именно так Java представляет свои сокеты. Я не собираюсь здесь говорить об этом, но хочу предупредить, что вам нужно использовать заподлицо с розетками. Это буферизованные «файлы», и распространенной ошибкой является напишите что-нибудь, а затем прочтите, чтобы получить ответ. Без смыва там вы можете ждать ответа вечно, потому что запрос все еще может быть в ваш выходной буфер.
Теперь мы подошли к главному камню преткновения сокетов - работе send и recv. в сетевых буферах. Они не обязательно обрабатывают все передаваемые вами байты их (или ожидайте от них), потому что их основное внимание уделяется работе с сетью буферы.Как правило, они возвращаются, когда связанные сетевые буферы были заполнены (отправить) или опорожнены (recv). Затем они сообщают вам, сколько байтов они обработано. Это , ваша ответственность - позвонить им еще раз, пока ваше сообщение не будет полностью разобрались.
Когда recv возвращает 0 байтов, это означает, что другая сторона закрылась (или находится в процесс закрытия) соединение. Вы больше не получите данных о это соединение. Когда-либо. Возможно, вы сможете успешно отправить данные; Я поговорю подробнее об этом позже.
Протокол, такой как HTTP, использует сокет только для одной передачи. Клиент отправляет запрос, затем читает ответ. Это оно. Сокет отбрасывается. Это значит, что клиент может определить конец ответа, получив 0 байтов.
Но если вы планируете повторно использовать розетку для дальнейших передач, вам необходимо что нет EOT на розетке. Повторяю: если розетка send или recv возвращается после обработки 0 байтов, соединение было сломан.Если соединение , а не разорвано, вы можете подождать навсегда, потому что сокет , а не скажет вам, что больше нечего читать (пока). Если вы немного подумаете об этом, то поймете, что Основная истина сокетов: сообщения должны иметь фиксированную длину (фу), или быть разделенными (пожать плечами), или указать их длину (намного лучше), или закончиться отключение соединения . Выбор полностью за вами, но некоторые способы правее других).
Если вы не хотите разрывать соединение, самым простым решением является фиксированный длина сообщения:
Классmysocket: "" "только демонстрационный класс - закодировано для ясности, а не эффективности "" " def __ini.
|
|
|
|
|
|
|
|
|
|
| Перекрывающиеся операции завершатся позже.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- сетевой интерфейс низкого уровня - документация Python 3.9.0
Исходный код: Lib / socket.py
Этот модуль обеспечивает доступ к интерфейсу сокета BSD . Он доступен на все современные системы Unix, Windows, MacOS и, возможно, дополнительные платформы.
Примечание
Некоторое поведение может зависеть от платформы, так как звонки выполняются в операционную API системных сокетов.
Интерфейс Python представляет собой прямую транслитерацию системы Unix. вызов и интерфейс библиотеки для сокетов в объектно-ориентированном стиле Python: Функция socket ()
возвращает объект сокета , методы которого реализуют различные системные вызовы сокетов.Типы параметров несколько выше, чем в интерфейсе C: как с операциями read ()
и write ()
на Python файлы, распределение буфера при операциях приема выполняется автоматически, а длина буфера неявно используется в операциях отправки.
См. Также
- Модуль
socketserver
-
Классы, упрощающие запись сетевых серверов.
- Module
ssl
-
Оболочка TLS / SSL для объектов сокета.
Семейства розеток
В зависимости от системы и вариантов сборки, различные семейства сокетов поддерживаются этим модулем.
Формат адреса, требуемый конкретным объектом сокета, автоматически выбрано на основе семейства адресов, указанного, когда объект сокета был создан. Адреса сокетов представлены следующим образом:
-
Адрес сокета
AF_UNIX
, привязанного к узлу файловой системы представлен в виде строки с использованием кодировки файловой системы и'surrogateescape'
обработчик ошибок (см. PEP 383 ).Адрес в Абстрактное пространство имен Linux возвращается как байтовый объект с начальный нулевой байт; обратите внимание, что сокеты в этом пространстве имен могут взаимодействовать с обычными сокетами файловой системы, поэтому программы, предназначенные для при запуске в Linux может потребоваться иметь дело с обоими типами адресов. Строка или байтовый объект может использоваться для любого типа адреса, когда передавая это как аргумент.Изменено в версии 3.3: Ранее предполагалось, что пути сокетов
AF_UNIX
используют UTF-8 кодирование.
-
Пара
(хост, порт)
используется для семейства адресовAF_INET
, где host - это строка, представляющая либо имя хоста в Интернет-домене запись типа'daring.cwi.nl'
или адрес IPv4, например'100.50.200.5'
, и порт - целое число.-
Для адресов IPv4 вместо хоста принимаются две специальные формы адрес:
''
представляетINADDR_ANY
, который используется для привязки ко всем интерфейсов, а строка'
представляет' ИНАДДР_БРОАДКАСТ
.Такое поведение несовместимо с IPv6, поэтому вы можете захотеть избежать этого, если намерены поддерживать IPv6 с помощью своего Программы на Python.
-
-
Для семейства адресов
AF_INET6
, четыре кортежа(хост, порт, flowinfo, scope_id)
, где flowinfo и scope_id представляютsin6_flowinfo
иsin6_scope_id
членов вstruct sockaddr_in6
в C. Дляsocket
методы модуля, flowinfo и scope_id могут быть опущены только для Обратная совместимость.Обратите внимание, однако, что пропуск scope_id может вызвать проблемы. в манипулировании адресами IPv6 с заданной областью действия.Изменено в версии 3.7: Для многоадресных адресов (с scope_id значимым) адрес может не содержать
% scope_id
(илиid зоны
) часть. Эта информация является излишней и может безопасно опустить (рекомендуется). -
AF_NETLINK
сокеты представлены парами(pid, groups)
. -
Поддержка TIPC только для Linux доступна с использованием
AF_TIPC
адрес семьи.TIPC - это открытый сетевой протокол, не основанный на IP, разработанный для использования в кластерных компьютерных средах. Адреса представлены кортеж, а поля зависят от типа адреса. Общая форма кортежа(addr_type, v1, v2, v3 [, scope])
, где:-
addr_type является одним из
TIPC_ADDR_NAMESEQ
,TIPC_ADDR_NAME
, илиTIPC_ADDR_ID
. -
область действия является одним из
TIPC_ZONE_SCOPE
,TIPC_CLUSTER_SCOPE
иТИПС_НОД_СКОПЕ
. -
Если addr_type - это
TIPC_ADDR_NAME
, то v1 - это тип сервера, v2 - это идентификатор порта, а v3 должно быть 0.Если addr_type - это
TIPC_ADDR_NAMESEQ
, то v1 - это тип сервера, v2 - это нижний номер порта, а v3 - это верхний номер порта.Если addr_type - это
TIPC_ADDR_ID
, то v1 - это узел, v2 - это ссылка, а v3 должно быть установлено на 0.
-
-
Кортеж
(интерфейс,)
используется для семейства адресовAF_CAN
, где interface - строка, представляющая имя сетевого интерфейса, например'can0'
. Имя сетевого интерфейса''
может использоваться для приема пакетов. со всех сетевых интерфейсов этого семейства.-
Протокол CAN_ISOTP
требует кортежа(interface, rx_addr, tx_addr)
где оба дополнительных параметра представляют собой длинное целое число без знака, которое представляет собой Идентификатор CAN (стандартный или расширенный). -
Протокол CAN_J1939
требует кортежа(интерфейс, имя, pgn, адрес)
где дополнительные параметры - это 64-битное целое число без знака, представляющее Имя ЭБУ, 32-битное целое число без знака, представляющее номер группы параметров (PGN) и 8-битное целое число, представляющее адрес.
-
-
Строка или кортеж
(id, unit)
используется дляSYSPROTO_CONTROL
протокол семействаPF_SYSTEM
.Строка - это имя управление ядром с использованием динамически назначаемого идентификатора. Кортеж можно использовать, если ID и номер блока управления ядром известны, или если зарегистрированный идентификатор используемый. -
AF_BLUETOOTH
поддерживает следующие протоколы и адреса форматы:-
BTPROTO_L2CAP
принимает(bdaddr, psm)
, гдеbdaddr
- адрес Bluetooth в виде строки, аpsm
- целое число. -
BTPROTO_RFCOMM
принимает(bdaddr, канал)
, гдеbdaddr
- это адрес Bluetooth в виде строки, а канал,
- целое число. -
BTPROTO_HCI
принимает(устройство_
-