Как подключить розетку от розетки плиты


Розетка для электроплиты: подключение силового устройства

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

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

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

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

Виды силовых точек для электроплиты

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

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

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

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

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

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

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

По способу монтажа выделяют силовые розетки:

  • для открытой установки;
  • скрытой установки.

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

Высокомощная трехфазная розетка, используется для установки в квартирах/домах, в которые заходит трехфазная электрическая сеть

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

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

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

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

Особенности электротехнического устройства

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

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

Если простые розетки рассчитаны на 10 А, 16 А, то силовые – на 25 А, 32 А и более. Их контакты при прохождении такого тока не нагреваются.

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

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

Правила установки розетки для электроплиты

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

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

#1: Подготовка к установке силовой розетки

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

Силовую розетку для плиты или электрической варочной поверхности можно установить на высоте 10 см от пола. Главное, чтобы дистанционно она находилась подальше от мойки и посудомоечной машины (+)

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

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

Выбирая провод и осуществляя его укладку, следует руководствоваться нормами, прописанными в своде правил СП 31-110-2003, п.9.2. Согласно им, на питающую линию для электрической плиты нельзя подключать дополнительные розетки, выключатели или светильники.

Для однофазной сети используется трехжильный провод сечением 6 мм2, а для трехфазной – пятижильный, но с меньшим сечением.

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

Подобрав правильный провод, нужно защитить его. Для этого в щитке для него устанавливается автоматический выключатель на 32 А. Также, для дополнительной электробезопасности предстоит сразу же после автоматического выключателя установить на 40 А.

УЗО и автомат защиты поможет уберечь жилище от печальных последствий, которые могут возникнуть в случае перенапряжения сети (+)

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

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

Если предстоит монтаж силового разъема внутри кухонного шкафчика, то целесообразнее брать накладную модель

#2: Выбор места для силовой точки

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

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

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

  • под мойкой;
  • за стиральной машинкой;
  • посудомоечной машиной.

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

Категорически нельзя устанавливать силовую розетку над самой плитой или рядом с ней. Лучше спрятать в стоящий рядом шкафчик

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

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

#3: Специфика и последовательность подключения

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

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

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

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

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

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

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

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

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

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

Варианты подключения силовой вилки

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

Существуют различные схемы по подключению. Они зависят от питающей сети, заходящей в частный или многоквартирный дом. Различают такое подключение:

  • однофазное;
  • двухфазное;
  • трехфазное.

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

Иногда такая схема прилагается в инструкции, идущей в комплекте с электроплитой. Нужно внимательно ее изучить и действовать в соответствии с нужной схемой.

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

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

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

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

  • на клеммы L1, L2, L3 подсоединяются фазы A, B, C. В этом случае фазные перемычки из медного провода не используются;
  • между нулевыми клеммами N1, N2 ставится медная перемычка и к ней подсоединяется провод нуля;
  • заземляющий желто-зеленый провод присоединяется на клемму РЕ.

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

Например, между L1 и L2. Затем фазу А подключить на эту клемму, а оставшуюся фазу С прикрепить на зажим L3.

Между клеммами нуля N1, N2 ставится такая же качественная перемычка и подсоединяется нулевой провод. А повод земли прикрепляется к клемме РЕ.

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

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

Медные перемычки часто идут в комплекте с плитой. Но, если их вдруг не обнаружилось, можно использовать медный провод 6 мм2, отсоединив от него куски нужного размера. Места присоединения к клеммам нужно аккуратно обжать, чтобы обеспечить надежный контакт с зажимами.

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

Подробная фотоинструкция по подключению по однофазной схеме

Начать следует с подготовки инструментов и материала.

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

Фото из

Шаг 1: Приобретение розетки для подключения электроплиты

Шаг 2: Покупка комплекта для подключения в магазине

Шаг 3: Подбор контрольно-измерительных устройств

Шаг 4: Подготовка трехжильного силового кабеля

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

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

Фото из

Шаг 1 - выбор схемы подключения

Шаг 2 - подготовка клемм на плите

Шаг 3 - протяжка креплений клеммника

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

После подключения кабеля к плите следует проверить провода в распределительной коробке и установить новую розетку.

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

Фото из

Для проверки используем индикаторные отвертки. Проверяем соответствие проводов по цвету: белый - фаза, сине-белый - ноль, желто-зеленый - земля

Для проверки провода, предназначенного для заземления (с желто-зеленой изоляцией), используем тестер

Устанавливаем корпус розетки на стену и заводим провода. Для силовых кабелей лучше использовать накладные розетки - с ними удобнее работать

Вставляем провода в выводящую панель и проверяем: с правой стороны - фаза, с левой - ноль, по центру - земля

Подключить провода внутри вилки можно и заранее. Они должны соответствовать проводам в розетке

При включении вилки плиты в розетку контакты проводов должны совпадать: фаза - с фазой, ноль - с нолем, земля - с землей

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

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

Шаг 1 - проверка проводов в распределительной коробке

Шаг 2 - тестирование заземляющего провода

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

Шаг 4 - проверка проводов в розетке

Шаг 5 - сборка вилки кабеля

Шаг 6 - проверка на соответствие проводов

Шаг 7 - проверка подключения кабеля к плите

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

Завершающий и обязательный этап – тестирование. Необходимо проверить работу розетки, а заодно и плиты.

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

Фото из

Шаг 1 - проверка напряжение в розетке

Шаг 2 - тестирование подключения кабеля

Шаг 3 - проверка функционирования плиты

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

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

Подключение плиты без розетки

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

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

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

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

Во-первых, нужно раскрутить вилку электрической плиты и освободить провода, находящиеся в ней. Это, как правило, 3 провода – заземление, фаза и ноль.

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

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

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

Если в комплекте с плитой нет силовой вилки, то провод можно подсоединить самостоятельно

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

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

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

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

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

Подробный видео ролик об установке силовой розетки накладным способом и подключении силовой вилки к электрической плите:

Наглядное видео о присоединении кабеля к электроплите согласно схеме, предоставленной производителем:

Видео о подключении электроплиты к силовой розетке с вилкой, оставшихся от старой плиты:

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

Есть опыт в самостоятельном монтаже розетки для электрической плиты? А может, не согласны с изложенным материалом? Ждем ваших комментариев и вопросов.

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

В этой статье объясняется, как работать с сокетами и потоками сокетов на различных уровнях, от POSIX до Foundation.

Важно: В этой статье описаны способы создания соединений через сокеты, полностью контролируемые вашей программой. Большинство программ лучше обслуживаются высокоуровневыми API, такими как NSURLConnection . Чтобы узнать больше об этих высокоуровневых API, прочтите Обзор сети .

API, описанные в этой статье, следует использовать только в том случае, если вам необходимо поддерживать какой-либо протокол, отличный от протоколов, поддерживаемых встроенными функциями Cocoa или Core Foundation.

Практически на каждом уровне сети программное обеспечение можно разделить на две категории: клиенты (программы, которые подключаются к другим приложениям) и службы (программы, к которым подключаются другие приложения). На высоком уровне эти линии ясны. Большинство программ, написанных с использованием API высокого уровня, являются исключительно клиентами. Однако на более низком уровне линии часто размыты.

Программирование сокетов и потоков обычно попадает в одну из следующих широких категорий:

  • Связь на основе пакетов - программы, которые работают с одним пакетом за раз, прослушивая входящие пакеты, а затем отправляя пакеты в ответ.

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

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

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

Эта глава разделена на разделы, основанные на перечисленных выше задачах:

Выбор семейства API

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

  • В OS X, если у вас уже есть сетевой код, который используется совместно с платформами сторонних производителей, вы можете использовать сетевые API POSIX C и продолжать использовать свой сетевой код как есть (на отдельный поток). Если ваша программа основана на цикле выполнения Core Foundation или Cocoa (Foundation), вы также можете использовать API Core Foundation CFStream для интеграции сетевого кода POSIX в вашу общую архитектуру в основном потоке.В качестве альтернативы, если вы используете Grand Central Dispatch (GCD), вы можете добавить сокет в качестве источника отправки.

    В iOS использование сетей POSIX не рекомендуется, поскольку они не активируют сотовую радиосвязь или VPN по запросу. Таким образом, как правило, вы должны отделить сетевой код от любых общих функций обработки данных и переписать сетевой код, используя API более высокого уровня.

    Примечание: Если вы используете сетевой код POSIX, вы должны знать, что сетевой API POSIX не зависит от протокола (вы должны самостоятельно уладить некоторые различия между IPv4 и IPv6).Это API подключения по IP, а не API подключения по имени, что означает, что вам нужно проделать много дополнительной работы, если вы хотите достичь той же производительности и надежности при начальном подключении, которые предоставляют вам высокоуровневые API. бесплатно. Прежде чем вы решите повторно использовать существующий сетевой код POSIX, обязательно прочтите статью «Избегайте разрешения DNS-имен перед подключением к хосту» в Networking Overview .

  • Для демонов и служб, которые прослушивают порт, или для подключений без TCP, используйте сетевые API-интерфейсы C. POSIX или Core Foundation ( CFSocket ).

  • Для клиентского кода в Objective-C используйте сетевые API Foundation Objective-C. Foundation определяет классы высокого уровня для управления URL-соединениями, потоками сокетов, сетевыми службами и другими сетевыми задачами. Это также основная среда Objective-C, не связанная с пользовательским интерфейсом, в OS X и iOS, предоставляющая процедуры для циклов выполнения, обработки строк, объектов коллекции, доступа к файлам и т. Д.

  • Для клиентского кода на C используйте сетевые API-интерфейсы Core Foundation C. Фреймворк Core Foundation и фреймворк CFNetwork являются двумя основными фреймворками языка C в OS X и iOS.Вместе они определяют функции и структуры, на которых построены сетевые классы Foundation.

    Примечание: В OS X CFNetwork является подфреймворком структуры Core Services; в iOS CFNetwork - это фреймворк верхнего уровня.

Написание клиента на основе TCP

Способ создания исходящего соединения зависит от того, какой язык программирования вы используете, от типа соединения (TCP, UDP и т. Д.) И от того, пытаетесь ли вы поделиться кодом с другими платформами (кроме Mac и iOS).

  • Используйте NSStream для исходящих соединений в Objective-C.

    Если вы подключаетесь к определенному хосту, создайте объект CFHost (, а не , NSHost - они не имеют бесплатного моста), затем используйте CFStreamCreatePairWithSocketToHost или CFStreamCreatePair8, подключенный к open хост и порт и свяжите с ним пару объектов CFStream . Затем вы можете преобразовать их в объект NSStream .

    Вы также можете использовать функцию CFStreamCreatePairWithSocketToNetService с объектом CFNetServiceRef для подключения к службе Bonjour. Прочтите Обнаружение и Рекламу сетевых услуг в Обзор сети для получения дополнительной информации.

    Примечание: Метод getStreamsToHost: port: inputStream: outputStream: для NSNetService недоступен в iOS и не рекомендуется в OS X по соображениям производительности. В частности, NSNetService требует, чтобы вы создали экземпляр NSHost .При создании объекта поиск выполняется синхронно. Таким образом, создавать объект NSHost в основном потоке приложения небезопасно. Подробнее см. NSNetService и Автоматический подсчет ссылок (ARC) .

  • Используйте CFStream для исходящих соединений в C.

    Если вы пишете код, который не может включать Objective-C, используйте CFStream API. Он легче интегрируется с другими API-интерфейсами Core Foundation, чем CFSocket , и включает сотовое оборудование на iOS (где применимо), в отличие от API нижнего уровня.Вы можете использовать CFStreamCreatePairWithSocketToHost или CFStreamCreatePairWithSocketToCFHost , чтобы открыть сокет, подключенный к данному хосту и порту, и связать с ним пару объектов CFStream .

    Вы также можете использовать функцию CFStreamCreatePairWithSocketToNetService для подключения к службе Bonjour. Прочтите Обнаружение и Рекламу сетевых услуг в Обзор сети для получения дополнительной информации.

  • Используйте вызовы POSIX, если требуется кроссплатформенная переносимость.

    Если вы пишете сетевой код, который работает исключительно в OS X и iOS, вам обычно следует избегать сетевых вызовов POSIX, потому что с ними труднее работать, чем с API более высокого уровня. Однако, если вы пишете сетевой код, который должен использоваться совместно с другими платформами, вы можете использовать сетевые API POSIX, чтобы вы могли использовать один и тот же код везде.

    Никогда не используйте синхронные сетевые API POSIX в основном потоке приложения с графическим интерфейсом. Если вы используете синхронные сетевые вызовы в приложении с графическим интерфейсом, вы должны делать это в отдельном потоке.

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

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

Чтобы узнать больше об API сокетов POSIX, прочтите FAQ по UNIX Socket на http://developerweb.net/.

Установление соединения

Как правило, для установления TCP-соединения с удаленным хостом рекомендуется использовать потоки.Потоки автоматически решают многие проблемы, возникающие при TCP-соединениях. Например, потоки предоставляют возможность подключения по имени хоста, а в iOS они автоматически активируют сотовый модем устройства или VPN по запросу, когда это необходимо (в отличие от CFSocket или сокетов BSD). Потоки также являются более похожим на Какао сетевым интерфейсом, чем протоколы более низкого уровня, и ведут себя в значительной степени совместимым с API потокового файла Какао.

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

После получения входных и выходных потоков, вы должны немедленно сохранить их, если вы не используете автоматический подсчет ссылок .Затем приведите их к объектам NSInputStream и NSOutputStream , установите их объекты-делегаты (которые должны соответствовать протоколу NSStreamDelegate ), запланируйте их в текущем цикле выполнения и вызовите их методы open .

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

Обработка событий

Когда метод stream: handleEvent: вызывается в делегате объекта NSOutputStream и значение параметра streamEvent равно NSStreamEventHasSpaceAvailable , вызовите write: maxLength: data: Этот метод возвращает количество записанных байтов или отрицательное число в случае ошибки. Если было записано меньше байтов, чем вы пытались отправить, вы должны поставить в очередь оставшиеся данные и отправить их после повторного вызова метода делегата с событием NSStreamEventHasSpaceAvailable .В случае возникновения ошибки следует позвонить по номеру streamError , чтобы выяснить, что пошло не так.

Когда номер

.Программирование сокетов

на Python (Руководство) - Real Python

Сокеты и API сокетов используются для отправки сообщений по сети. Они обеспечивают форму межпроцессного взаимодействия (IPC). Сеть может быть логической локальной сетью для компьютера или сетью, физически подключенной к внешней сети, с собственными подключениями к другим сетям. Очевидным примером является Интернет, к которому вы подключаетесь через своего провайдера.

В этом руководстве есть три различных итерации построения сервера и клиента сокетов с помощью Python:

  1. Мы начнем обучение с рассмотрения простого сервера и клиента сокета.
  2. После того, как вы познакомились с API и принципами работы в этом начальном примере, мы рассмотрим улучшенную версию, которая обрабатывает несколько подключений одновременно.
  3. Наконец, мы перейдем к созданию примера сервера и клиента, которые функционируют как полноценное приложение для сокетов, со своим собственным настраиваемым заголовком и содержимым.

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

Примеры в этом руководстве используют Python 3.6. Вы можете найти исходный код на GitHub.

Сети и розетки - большие предметы. О них написаны буквально тома. Если вы новичок в сокетах или сетях, это совершенно нормально, если вы чувствуете себя перегруженным всеми терминами и частями. Я знаю, что сделал!

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

Приступим!

Фон

Розетки имеют долгую историю. Их использование началось с ARPANET в 1971 году, а позже стало API в операционной системе Berkeley Software Distribution (BSD), выпущенной в 1983 году, под названием Berkeley Sockets.

Когда в 1990-х годах появился Интернет, вместе с World Wide Web росло и сетевое программирование.Веб-серверы и браузеры были не единственными приложениями, использующими преимущества новых подключенных сетей и сокетов. Широкое распространение получили клиент-серверные приложения всех типов и размеров.

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

Наиболее распространенным типом приложений сокетов являются приложения клиент-сервер, в которых одна сторона выступает в роли сервера и ожидает соединений от клиентов.Это тип приложения, о котором я расскажу в этом руководстве. В частности, мы рассмотрим API сокетов для Интернет-сокетов, иногда называемых сокетами Беркли или BSD. Существуют также доменные сокеты Unix, которые могут использоваться только для связи между процессами на одном и том же хосте.

Обзор API сокетов

Модуль сокетов

Python обеспечивает интерфейс с Ber

.

17,2. socket - низкоуровневый сетевой интерфейс - документация Python 2.7.18

Этот модуль обеспечивает доступ к интерфейсу BSD socket . Он доступен на все современные системы Unix, Windows, Mac OS X, BeOS, OS / 2 и, возможно, дополнительные платформы.

Примечание

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

Введение в программирование сокетов (на C) см. В следующих статьях: Вводный 4.Учебное пособие по межпроцессному взаимодействию 3BSD, Стюарт Сехрест и Расширенное руководство по межпроцессному взаимодействию 4.3BSD, Сэмюэл Дж. Леффлер и др. al, оба в Руководстве программиста UNIX, Дополнительные документы 1 (разделы PS1: 7 и PS1: 8). Справочные материалы по конкретной платформе для различных системные вызовы, связанные с сокетами, также являются ценным источником информации о детали семантики сокета. Для Unix см. Справочные страницы; для Windows, см. спецификацию WinSock (или Winsock 2).Для API, поддерживающих IPv6, читатели могут хочу сослаться на RFC 3493 , озаглавленный «Расширения базового интерфейса сокетов для IPv6».

Интерфейс Python представляет собой прямую транслитерацию системы Unix. вызов и интерфейс библиотеки для сокетов в объектно-ориентированном стиле Python: Функция socket () возвращает объект сокета , методы которого реализуют различные системные вызовы сокетов. Типы параметров несколько выше, чем в интерфейсе C: как с операциями read () и write () на Python файлы, распределение буфера при операциях приема выполняется автоматически, а длина буфера неявно используется в операциях отправки.

Адреса сокетов представлены следующим образом: одна строка используется для AF_UNIX семейство адресов. Пара (хост, порт) используется для AF_INET Семейство адресов , где host - строка, представляющая либо имя хоста в нотации домена Интернет, например 'daring.cwi.nl' или адрес IPv4 например, '100.50.200.5' и порт является целым числом. За AF_INET6 семейство адресов, четыре кортежа (хост, порт, flowinfo, scopeid) , где flowinfo и scopeid представляет sin6_flowinfo и sin6_scope_id член в struct sockaddr_in6 в C.За socket методы модуля, flowinfo и scopeid могут быть опущены только для Обратная совместимость. Обратите внимание, однако, что отсутствие scopeid может вызвать проблемы. в манипулировании адресами IPv6 с заданной областью действия. Другие семейства адресов в настоящее время не поддерживается. Формат адреса, требуемый конкретным объектом сокета, следующий: автоматически выбирается на основе семейства адресов, указанного, когда сокет объект был создан.

Для адресов IPv4 вместо адреса хоста принимаются две специальные формы: пустая строка представляет INADDR_ANY , а строка '' представляет INADDR_BROADCAST .Поведение не доступен для IPv6 для обратной совместимости, поэтому вы можете избежать это, если вы собираетесь поддерживать IPv6 в своих программах Python.

Если вы используете имя хоста в части host адреса сокета IPv4 / v6, программа может показывать недетерминированное поведение, поскольку Python использует первый адрес вернулся из разрешения DNS. Адрес сокета будет разрешен по-разному в фактический адрес IPv4 / v6, в зависимости от результатов DNS разрешение и / или конфигурация хоста.Для детерминированного поведения используйте числовой адрес в части хоста .

Новое в версии 2.5: сокеты AF_NETLINK представлены парами pid, группами .

Новое в версии 2.6: поддержка 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 , и TIPC_NODE_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.

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

Неблокирующий режим поддерживается посредством setblocking () . А обобщение этого на основе тайм-аутов поддерживается через settimeout () .

Модуль socket экспортирует следующие константы и функции:

исключение сокет. ошибка

Это исключение возникает для ошибок, связанных с сокетом. Сопутствующая стоимость составляет либо строка, указывающая, что пошло не так, либо пара (errno, string) представляет ошибку, возвращаемую системным вызовом, аналогично значению сопровождающий os.ошибка . См. Модуль errno , который содержит имена для кодов ошибок, определенных базовой операционной системой.

исключение сокет. Геррор

Это исключение возникает для ошибок, связанных с адресом, т. Е. Для функций, которые используют h_errno в C API, включая gethostbyname_ex () и gethostbyaddr () .

Сопутствующее значение - пара (h_errno, строка) , представляющая ошибку возвращается вызовом библиотеки. строка представляет собой описание h_errno , как возвращается функцией hstrerror () C.

исключение сокет. гайеррор

Это исключение возникает для ошибок, связанных с адресом, для getaddrinfo () и getnameinfo () . Сопутствующее значение - пара (ошибка, строка) представляет ошибку, возвращенную вызовом библиотеки. строка представляет Описание ошибки , возвращенной функцией C. gai_strerror () .В Ошибка Значение будет соответствовать одной из констант EAI_ * , определенных в этом модуль.

исключение сокет. таймаут

Это

.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: # принимать подключения извне (клиентский сокет, адрес) = серверный сокет.принять () # теперь сделайте что-нибудь с клиентским сокетом # в данном случае мы представим, что это многопоточный сервер 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 навсегда, потому что сокет , а не скажет вам, что больше нечего читать (пока). Если вы немного подумаете об этом, то поймете, что фундаментальная истина сокетов: сообщения должны иметь фиксированную длину (фу), или быть разделенными (пожать плечами), или указать длину (намного лучше), или заканчиваться отключение соединения .Выбор полностью за вами, но некоторые способы правее других).

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

.

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