Как правильно расположить розетки на кухне


5 ошибок расположения розеток на кухне

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

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

Мощность электроприборов на кухне

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

Вот примерный их перечень:

  • освещение – 150-200 Ватт
  • Микроволновка – 2000 Ватт
  • Холодильник – 100 Ватт
  • Посудомоечная машина – 1000-2000 Ватт
  • Чайник электрический – 2000 Ватт
  • Духовой шкаф – 2000 Ватт
  • Водоподогреватель – 2000 Ватт
  • Варочная панель - 3500-7500 Ватт

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

Максимальная мощность, когда одновременно включено несколько токоприемников, в обычной квартире, как правило, не превышает 7кВт.

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

Какой кабель выбрать для кухни

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

  • при нагрузке приборов до 3,5кВт – медный кабель ВВГнг-Ls 3*2,5мм2
  • при нагрузке приборов до 5,5кВт – медный кабель ВВГнг-Ls 3*4мм2
  • при общей нагрузке всех приборов до 10кВт – медный кабель ВВГнг-Ls 3*6мм2
  • при общей нагрузке всех приборов до 15кВт – медный кабель ВВГнг-Ls 3*10мм2

Почему должна быть именно марка ВВГнГ-Ls, подробно говорится в статье ниже:

Даже если у вас дом со старой системой заземления (без третьего защитного проводника), все равно делайте проводку 3-х жильным кабелем. Это избавит вас в будущем от дополнительных затрат по реконструкции и замене проводов.

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

Схема размещения розеток на кухне

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

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

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

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

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

Количество розеток

Сколько минимально розеток требуется на кухне?

Здесь придерживайтесь правила - под каждую стационарную кухонную технику планируйте свою розетку + 2 блока по краям столешницы + 1шт возле обеденного стола.

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

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

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

Теперь обозначьте точки на фартуке для подключения не стационарных приборов. Закладывайте минимум по две штуки на каждую часть (правую и левую) кухни.

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

Расстояния и места размещения

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

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

Если кухня угловая, то же самое проделываете со смежной стеной.

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

Холодильник

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

Нельзя однозначно со 100% уверенностью сказать, на какой именно высоте нужно делать нижний ряд розеток.

Если исходить из рекомендаций IKEA, то они советуют их размещать на высоте примерно 10см от пола, т.е. на одном уровне с ножками шкафчиков.

Объясняется это тем, что если установить выше, то встраиваемая техника будет упираться в вилки.

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

Розетки рабочей зоны и над столешницей

Высота столешницы как правило 85см, максимум 90см. Затем идет простенок высотой 550-600мм и далее шкафчики.

Размещайте розетки в этой зоне в 105см от пола.

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

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

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

Обязательно нужно продумать, будет ли встраиваемая техника в верхних шкафчиках. Например, микроволновка.

Под нее также придется делать отдельную розетку. Тянуть шнуры сверху до зоны столешницы не по фэншую.

Вытяжка

Также вверху на высоте 1,9м-2,0м выводится розетка под вытяжку. Однако многое может зависеть от марки. Если это дешевый вариант, то можно обойтись выводом кабеля и затем подключить его прямо внутри техники.

Но если, это дорогая модель, то она идет со своей вилкой. А срезание заводской вилки влечет за собой потерю гарантии.

Варочная и духовка

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

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

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

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

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

Посудомойка

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

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

Возле обеденного стола (если он находится возле стены, а не по центру кухни), желательно запланировать одну розетку.

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

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

Рекомендации по проводке и автоматам

  • для группы розеток, в которые подключаются приборы до 3,5кВт, монтируется автомат на 16А
  • для приборов до 5,5кВт автомат 25А. Причем к этому токоприемнику лучше протягивать отдельную группу

Также ориентироваться можно по следующей таблице выбора автоматов и кабеля при подключении варочной панели:

  • так как кухня – это влажное помещение, плюс огромное количество предметов с металлическим корпусом, в щитке перед всеми автоматами обязательна установка вводного УЗО на ток 30мА
  • все розетки должны обладать заземляющим контактом, на номинальный ток до 16А, для скрытой проводки
  • на каждый токоприемник ставится отдельная розетка
  • не пользуйтесь переносками и удлинителями на кухне

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

Частые ошибки

1Монтаж проводки и розеток до утверждения и согласования дизайн-проекта кухонной мебели.

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

2Подключение холодильника.

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

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

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

3Подключение розеток на "мокрые" приборы через простой автомат.

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

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

Даже если у вас нет заземляющего проводника, УЗО и в этом случае все равно поможет и защитит.

4Самая распространенная ошибка - это монтаж обычных розеток (типа Шуко) для посудомойки под раковиной или возле смесителя.

Данное расположение запрещено правилами. Отступайте от смесителя 500мм (то же самое относится к газовым трубам на плиты или варочные) и только потом смело монтируйте электроустановочное изделие.

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

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

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

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

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

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

Статьи по теме

Часть P - Переносные кухонные розетки

Привет, ребята,

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

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

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

Cheers

(Рассматриваемые розетки)

.

Как правильно установить розетки на кухне

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

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

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

- Определиться, какую технику вы будете подключать на кухне;

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

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

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

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

Теперь уже можно определить, какие розетки на кухне нужно установить, посчитать их количество.

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

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

Для электроприборов, которые мы используем на рабочей поверхности (миксер, кофеварка и т. Д.), Достаточно установить на кухне 3-4 розетки на расстоянии 90-100 см от пола. Всего на кухне их уместно разместить около 10.

Лучшая электропроводка на кухне разделена на отдельные ветви:

- освещение;

- группа розеток с заземлением;

- без заземления - для малогабаритной техники.

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

Есть несколько «невозможных», о которых всегда нужно помнить:

- не ставьте розетки на кухне слишком близко к открытому огню и стирке;

- не устанавливайте их в ящики;

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

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

- документация 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.

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

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

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

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

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

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

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

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

Класс
 mysocket: "" "только демонстрационный класс - закодирован для ясности, а не эффективности "" " def __ini 
.HOWTO по программированию сокетов

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

Автор

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

Аннотация

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

.

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