Как правильно подключить блок розеток


как подключить, специфика и схемы установки

Там, где необходимо подключить взаимодействующую группу бытовой техники, устанавливается блок розеток, включающий от двух до четырех электрических точек. Установка и подключение этого варианта отличается от тех же действий с обычной розеткой. Чтобы результат радовал надежностью, нужно знать тонкости. Согласны?

Мы подробно расскажем, как подключают блок розеток, какие варианты подключения с учетом потребителей существуют. У нас вы узнаете, какие правила монтажа стоит учитывать при установке подобного модульного устройства. Представленные к рассмотрению сведения опираются на ПУЭ.

Подробно изложенную технологию монтажа и подключения розеточных блоков мы подкрепили схемами, пошаговыми фото-руководствами, видео.

Содержание статьи:

Устройство и места установки розеточных блоков

Конструкция розеточного блока отличается от обычной розетки только количеством «посадочных» мест. Он состоит из пластмассового корпуса и внутренней части, представленной терминалами с контактами и клеммами, к которым прикрепляются пружины для вилок.

Большинство современных моделей оснащены заземляющими контактами, которые призваны повышать безопасность системы и снижать напряжение со всех подключенных через блок электроприборов.

Количество точек подключения устанавливаемого розеточного блока определяется исходя из наличия бытовой техники, посаженной на одну группу

Розеточные блоки бывают двух типов:

  • Предназначены для скрытой проводки. Устанавливаются в толщу стены с помощью модуля из выполненных в форме стаканов подрозетников;
  • Предназначены для открытой проводки. Устанавливаются на поверхность стены с помощью выполненного в форме пластины подрозетника.

Кроме двух основных разновидностей розеточных блоков есть еще весьма практичный выдвижной тип. Они легко монтируются в столешницу или в шкаф, из которых выдвигаются в период эксплуатационной необходимости. Их принцип работы аналогичен источникам питания, расположенным на/в стене.

Розеточные блоки часто , располагая их за рабочим столом на высоте в 10 см, внутри кухонных тумб и за стенками соседних тумбочек на уровне 30-60 см от чистового пола.  Встроенные розетки удобно использовать при подключении группы не мощных бытовых приборов: вытяжки, мультиварки, холодильника…

Врезной корпус выдвижной розеточной группы, состоящей из трех-пяти электроточек, остается скрытым в столешнице до тех пор, пока слегка не надавишь на его верхнюю панель

При обустройстве залов и гостиных их размещают возле компьютерных столов или за экраном телевизора. Розеточные группы из трех электроточек часто можно встретить и ванных комнатах. Но в этом случае используют устройства с влагозащищенными корпусами, размещая их на расстоянии не менее 60 см от источника воды.

Способы подключения с учетом потребителей

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

Единственным «минусом» такой схемы является то, что в случае повреждения в месте контакта одной из жил перестают функционировать и все расположенные за ней элементы

Сегодня подключение блока розеток часто осуществляют комбинированным способом, в основе которого лежит параллельная схема. Этот способ активно практикуется в европейских странах. У нас он применяется для обеспечения отдельной линией мощных потребителей.

Параллельное подключение предполагает прокладку от распределительной коробки двух кабелей:

  • первый направляется в виде шлейфа, запитывая четыре из пяти розеток 5-местного блока;
  • второй – подводится отдельно к пятой точке розеточной группы, которая предназначена будет для запитки мощного прибора.

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

Главное достоинство комбинированного способа – в обеспечении максимальной степени безопасности, что особо актуально при эксплуатации мощных и дорогостоящих приборов

Единственный недостаток схемы – увеличение расхода кабеля и затрат труда электромонтажника.

Как шлейфовый, так и комбинированный способ подключения может быть закрытого и открытого исполнения. Первый предполагает выдалбливание каналов в стене для прокладки линий и «гнезд» под разъемы, второй реализуется путем прокладки РЕ проводника на поверхности стены.

Плинтусы и кабель-каналы, используемые при открытом способе прокладки, выполняют не только эстетическую функцию, но и защищают РЕ проводник от механического повреждения

Применение пластиковых кабель-каналов повышает безопасность и эстетичность открытой проводки. Большинство из них снабжено перегородками, между которыми и прокладывают линию. Контроль за состоянием РЕ проводника удобно осуществлять через съемную переднюю часть.

Инструкция по монтажу розеточного блока

Выбор способа монтажа, будь-то наружная прокладка или , зависит от материала, с которым приходится работать. Стены в доме могут быть бетонными или кирпичными, либо же выполненными из дерева или гипсокартона.

Планируете ли штробить бетон в панельном доме или ограничитесь установкой накладного блока при открытой проводке – решать вам.

Проведение подготовительных работ

Первое, что необходимо выполнить – обесточить участок, где будут выполняться работы.

После отключения автомата в электрощите в обязательном порядке следует убедиться, что нет напряжения, используя для этого индикаторную отвертку

В домах старой постройки, где не установлены автоматы, чтобы обесточить помещение нужно лишь выкрутить пробки.

Из материалов необходимо заранее подготовить:

  • розеточный блок;
  • декоративную планку;
  • провода для перемычек;
  • кабель для проводки;
  • подрозетники, соединяющиеся в блоки;
  • гипс или алебастр.

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

Из инструментов потребуются:

  • перфоратор, оснащенный бурильной коронкой D 70 мм;
  • строительный уровень;
  • рулетка, линейка и маркер;
  • электромонтажный набор инструментов;
  • емкость для замешивания гипса;
  • шпатель.

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

Нанесение разметки на стену

Удобство установки и подключения розеточной группы во многом зависит от правильности нанесения разметки. Перед началом выполнения работ следует удостовериться в отсутствии под стеной коммуникаций. При работе с гипсокартонной основой важно не попасть на поддерживающий ее профиль.

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

Галерея изображений

Фото из

Шаг 1 - выбор места установки блока подрозетников

Шаг 2 - использование лазерного или пузырькового уровня

Шаг 3 - обозначение на стене точек монтажа розеток

Шаг 4 - определение точного места посадки каждого подрозетника

В центре будущих отверстий удаляют углубления. Важно следить, чтобы направляющее сверло бурильной коронки не «уходило» в сторону. Маленькая хитрость: поскольку при создании розеточного блока довольно сложно добиться горизонтальности расположения отверстий, для работы можно использовать коронку чуть большего размера диаметром в 80 мм.

Расстояние между центрами подрозетников должно соответствовать 72 мм, иначе при установке декоративной крышки она просто не «сядет» на свое место

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

Способы устройства разводки и прокладки кабеля в квартире подробно изложены в нашего сайта.

Создание штроб и «посадочных» мест

Подготавливая «посадочные» места в бетонной или кирпичной стене, бурение по отмеченным перекрестиям начинают на малых оборотах, не забывая при этом контролировать положение сверла.

Чтобы обеспечить точность монтажа, отверстие сначала намечают сверлом небольшого диаметра. Лишь после этого насаживают коронку, которая делает углубление по контуру будущего «посадочного» места.

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

Оставшийся в отверстиях стенной материал выдалбливают перфорированным зубилом. После этого между отверстиями прокладывают канавки, необходимые для соединительных выступов .

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

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

Если под рукой нет перфоратора – смело используйте болгарку; оснастив прибор алмазным диском, вы сможете при минимуме усилий создать идеально ровные контуры канавок

При желании штробление стен можно выполнить и «дедовским» способом с применением зубила и молотка. Но будьте готовы, что на реализацию этого способа понадобится больше сил и времени. Да и делать углубления зубилом в кирпиче под прокладку кабеля – непростая задача, которая не всегда дает опрятный желаемый результат.

Намного проще работать с гипсокартонной основой. Чтобы сделать посадочные места необходимо лишь с помощью насадки по гипсокартону согласно разметке вырезать круглые штробы. Главное – сильно не нажимать, чтобы не сломать хрупкую основу.

Специфика крепления подрозетников

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

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

Для фиксации подрозетников в кирпичной кладке или стене используют алебастр или гипсовый раствор. Порошок разводят с водой в пропорции 4:1. При работе с этими сметанообразными составами следует помнить, что они быстро схватываются.

Порошок нужно разводить небольшими порциями и быстро закладывать в отверстие, пока смесь не затвердела. Этим же раствором обмазывают примыкающие к поверхности наружные боковые грани и дно соединенных стаканов, после чего весь блок вставляют в отверстие.

Положение заглубленных стаканов корректируют с помощью уровня, не допуская чтобы выступы краев выходили за пределы плоскости стены.

Убедившись в правильности положения подрозетников, края замазывают жидким раствором, придавая плоскости максимально ровную поверхность. Остатки алебастра или гипса можно использовать на маскирование проложенного к розетке провода.

Пластиковые стаканы заглубляют в посадочные места и фиксируют с помощью гипсового раствора или размещенных по бокам специальных лапок

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

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

Исключение составляет лишь тот вариант, когда предполагается облицовка поверхности плиткой или отделка штукатуркой. В этом случае подрозетник делают немного выступающим за пределы стены на 5-7 мм.

Тонкости подключения электрики

После того, как раствор приобретет желаемую прочность, переходят к подключению внутреннего блока. Чтобы подключить розетки шлейфовым способом, проложенные от распределительной коробки провода заводят в первый подрозетник.

Непосредственно перед этим концы кабеля на 10-15 мм зачищают от плетки. Выполнить работу можно с помощью остро заточенного ножа. Но чтобы добиться максимальной аккуратности, опытные хозяева рекомендуют использовать бокорезы.

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

Главное – не допускать резкий изгиб или перелом, чем нередко «грешат» неопытные хозяева, укладывая провода внутри стакана на “скорую руку”

Заранее подготавливают отрезы разноцветных проводов для создания перемычек. Сечение перемычек должно соответствовать проводниками питающей линии. Проводники перемычки не стоит делать слишком длинными. Иначе в процессе подключения они будут мешать и не позволять розетке плотно «сесть» в монтажную коробку. В отрезанных проводах также зачищают изоляцию приблизительно на сантиметр.

Сквозь переходники предварительно очищенных от остатков гипса полостей подрозетников продевают провода. Для упрощения монтажа концы проводников подгибают в направлении расположения клемм.

С самого розеточного блока снимают защитную крышку, затем на 5-6 мм откручивают зажимные винты. Зачищенный конец фазного провода питающего кабеля подводят к первой розетке с учетом положения клемм. От нее через контакты РЕ проводник и нулевые провода питающего кабеля направляют во вторую розетку.

Подключение остальных розеток осуществляют через перемычки, соединяющие механизмы устройств. Жилы с одинакового цвета оплеткой подключают согласно окраса: фаза – красного цвета, «ноль» – синего, а заземляющий проводник – зеленого

По такому же принципу осуществляют подключение всех последующих розеток. Гнезда с аккуратно уложенными проводами не сильно плотно затягивают винтами. При шлефировании розеток в обязательном порядке соблюдают полярность контактов: от клеммы с фазным проводником отводят фазный, от нулевого – нулевой.

Чтобы жилы проводов надежно попадали в монтажные гнезда, перед установкой болты зажимом откручивают по максимуму, а после его завершения – возвращают в исходное положение

При подключении защитного проводника следует строго соблюдать основное требование ПУЭ, которое гласит, что все соединения этого провода должны быть неразборными. Недооценка важности качества монтажа чревата тем, что при опасном инциденте в разы увеличивается риск поражения электрическим током.

Так, если в головной питающей розетке в процессе монтажа пропадает контакт с землей, следующие за ней участники цепи утрачивают защитный ноль. В дальнейшем при случайном попадании на корпус сетевого напряжения, к примеру, из-за неисправности утюга, под напряжением окажутся корпуса всех подключенных к питающему проводу электроприборов.

Для достижения максимальной надежности соединения проводов лучше использовать розетки, оснащенные не одним болтом, а двумя креплениями

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

После этого остается только «дожать» все саморезы, зафиксировать корпус в подрозетнике и установить на место декоративную крышку.

Пошаговая фотоинструкция:

Галерея изображений

Фото из

Шаг 1 - выведение и зачистка проводов

Шаг 2 - монтаж проводов в клеммы

Шаг 3 - установка корпуса в подрозетник

Шаг 4 - посадка корпуса на крепежные винты

Шаг 5 - монтаж последней в ряду розетки

Шаг 6 - выравнивание розеток по горизонтали

Шаг 7 - протяжка крепежа в "ушках"

Шаг 8 - монтаж декоративной крышки

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

Выводы и полезное видео по теме

Предложенные нами видео-материалы наглядно помогут понять, как правильно установить блок силовых розеток.

Видео #1. Обустройство подрозетников для розеточной панели:

Видео #2. Инструкция по установке пятирозеточного блока:

Установка розеточного блока по трудоемкости монтажа не намного сложнее подключения обычной или сдвоенной розетки. Проявив внимание и максимальную аккуратность, осуществить монтаж вполне под силу любому хозяину, владеющими лишь базовыми навыками электромонтажных работ.

Хотите рассказать о вашем личном опыте по монтажу и подключению групповых розеток? Есть полезная информация или появились вопросы во время ознакомления со статьей? Пишите, пожалуйста, комментарии в блоке, находящимся ниже.

HOWTO по программированию сокетов

- документация Python 2.7.18

Автор

Гордон Макмиллан

Аннотация

Розетки используются почти везде, но являются одними из самых неправильно понятые технологии вокруг. Это обзор розеток на 10 000 футов. На самом деле это не учебник - вам еще нужно поработать, чтобы что-то получить оперативный. Он не касается тонких моментов (а их очень много), но Я надеюсь, что это даст вам достаточно знаний, чтобы начать их прилично использовать.

Розетки

Я буду говорить только о сокетах INET, но они составляют не менее 99% используемые розетки. И я буду говорить только о розетках STREAM - если только вы знать, что вы делаете (в этом случае этот HOWTO не для вас!), вы получите лучшее поведение и производительность от сокета STREAM, чем что-либо еще. Я буду попытаться раскрыть тайну того, что такое сокет, а также дать несколько советов о том, как работа с блокирующими и неблокирующими розетками. Но я начну с разговора о блокировка розеток.Вам нужно знать, как они работают, прежде чем начинать неблокирующие розетки.

Отчасти проблема с пониманием этих вещей состоит в том, что «сокет» может означать количество неуловимо разных вещей, в зависимости от контекста. Итак, сначала давайте сделаем различие между «клиентским» сокетом - конечной точкой разговора и «Серверная» розетка, которая больше похожа на операторский коммутатор. Клиент приложение (например, ваш браузер) использует исключительно «клиентские» сокеты; то веб-сервер, с которым он разговаривает, использует как «серверные», так и «клиентские» сокеты.

История

Из различных форм МПК , розетки, безусловно, самые популярные. На любой платформе есть вероятно, будут другие формы IPC, которые быстрее, но для кроссплатформенное общение, сокеты - это почти единственная игра в городе.

Они были изобретены в Беркли как часть разновидности BSD Unix. Они распространяются как лесной пожар с Интернетом. Не зря - комбинация розеток. с INET невероятно легко общаться с произвольными машинами по всему миру (по крайней мере, по сравнению с другими схемами).

Создание сокета

Грубо говоря, когда вы нажимали на ссылку, которая привела вас на эту страницу, ваш браузер сделал что-то вроде следующего:

 # создать сокет INET, STREAMing s = socket.socket ( socket.AF_INET, socket.SOCK_STREAM) # теперь подключитесь к веб-серверу через порт 80 # - нормальный http порт s.connect (("www.mcmillan-inc.com", 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, мы можем ввести основной цикл веб-сервера:

, а 1: # принимать подключения извне (клиентский сокет, адрес) = серверный сокет.accept () # теперь сделайте что-нибудь с клиентским сокетом # в данном случае мы представим, что это многопоточный сервер ct = client_thread (клиентский сокет) ct.run () 

На самом деле существует 3 основных способа работы этого цикла - отправка поток для обработки clientocket , создайте новый процесс для обработки clientocket , или реструктурируйте это приложение для использования неблокирующих сокетов, и мультиплексирование между нашим «серверным» сокетом и любым активным клиентским сокетом с использованием выберите .Подробнее об этом позже. Сейчас важно понять, это: это все «серверный» сокет. Он не отправляет никаких данных. Это не получать любые данные. Он просто производит «клиентские» сокеты. Каждому клиентскому сокету соответствует создается в ответ на , другой «клиентский» сокет, выполняющий connect () с хост и порт, к которым мы привязаны. Как только мы создали этот клиентский сокет , мы вернитесь к прослушиванию для получения дополнительных подключений. Два «клиента» могут свободно общаться в чате. вверх - они используют какой-то динамически выделенный порт, который будет переработан, когда разговор заканчивается.

МПК

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

Если вы все же решите использовать сокеты, привяжите «серверный» сокет к 'localhost' . На на большинстве платформ это позволит сократить несколько уровней сети. код и быть немного быстрее.

Использование розетки

Первое, на что следует обратить внимание, это то, что «клиентский» сокет веб-браузера и Интернет серверные «клиентские» сокеты такие же звери.То есть это «одноранговый» разговор. Или, другими словами, в качестве дизайнера вам придется решить, каковы правила этикета для разговора . Обычно connect ing socket начинает диалог, отправляя запрос, или возможно знак. Но это дизайнерское решение, а не розетки.

Теперь есть два набора глаголов, которые можно использовать для общения. Вы можете использовать отправить и recv , или вы можете превратить свой клиентский сокет в файлового зверя и используйте для чтения и для записи .Именно так Java представляет свои сокеты. Я не собираюсь здесь говорить об этом, но хочу предупредить, что вам нужно использовать заподлицо на розетки. Это буферизованные «файлы», и распространенной ошибкой является напишите что-нибудь, а затем прочтите для ответа. Без промывки дюймов там вы можете ждать ответа вечно, потому что запрос все еще может быть в ваш выходной буфер.

Теперь мы подошли к главному камню преткновения розеток - send и recv работают. в сетевых буферах.Они не обязательно обрабатывают все передаваемые вами байты их (или ожидайте от них), потому что их основное внимание уделяется работе с сетью буферы. Как правило, они возвращаются, когда связанные сетевые буферы были заполнены ( отправить ) или опустошены ( recv ). Затем они сообщают вам, сколько байтов они обработано. - это ваша ответственность - позвонить им еще раз, пока ваше сообщение не будет полностью разобрались.

Когда recv возвращает 0 байтов, это означает, что другая сторона закрыта (или находится в процесс закрытия) соединение.Вы больше не получите данных о это соединение. Когда-либо. Возможно, вы сможете успешно отправить данные; Я поговорю подробнее об этом позже.

Протокол, подобный HTTP, использует сокет только для одной передачи. Клиент отправляет запрос, затем читает ответ. Это оно. Сокет отбрасывается. Это значит, что клиент может определить конец ответа, получив 0 байтов.

Но если вы планируете повторно использовать розетку для дальнейших передач, вам необходимо что нет EOT на розетке. Повторюсь: если розетка отправить или recv возвращается после обработки 0 байтов, соединение было сломан. Если соединение , а не разорвано, вы можете подождать recv навсегда, потому что сокет , а не скажет вам, что больше нечего читать (пока). Если вы немного подумаете об этом, то поймете, что фундаментальная истина сокетов: сообщения должны иметь фиксированную длину (фу), или быть разделенными (пожать плечами), или указать длину (намного лучше), или заканчиваться отключение соединения .Выбор полностью за вами, но некоторые способы правее других).

Если вы не хотите разрывать соединение, самым простым решением является фиксированный длина сообщения:

.

Как правильно отправить HTTP-ответ с помощью Python, используя только библиотеку сокетов?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.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 socket.settimeout ()

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Смотрите также