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

Опубликовано в Разное
/
31 Окт 2021

Содержание

можно ли это, способы подключения

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

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

Преимущества и недостатки

Розетка двойная

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

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

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


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

Выбор подходящего способа монтажа электропроводки

Таблица соотношения сечения жил к токовым нагрузкам

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

Основные рабочие моменты:

  • Толщина кабелей. Сечение дочерней розетки не должно быть меньше родительской.
  • Дизайнерское решение. Напрямую зависит от интерьера помещения и не влияет на технические характеристики.
  • Порядок подключения. У бытовых приборов может быть два или три контакта. В первом случае это фазовый и нулевой провода, которые подключаются к разным контактам. При трехпроводном подключении добавляется заземление. Его подсоединяют на крепежный болт на корпусе устройства.
  • Заземление. Если оно имеется в основной розетке, в последующих точках питания также должно быть. По требованиям ПУЭ кабель должен быть цельным.

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

Наружная электропроводка

Открытая проводка в стиле ретро

Применяется в деревянных домах или в помещениях в стиле ретро.

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

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

Скрытая электропроводка

Скрытая проводка

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

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

Монтаж блока розеток

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

Комбинированная электропроводка

Комбинированная электропроводка

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

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

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

Как скрыть провод

Способы применения элементов для скрытия провода

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

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

Монтаж в гипсокартоне

Разметка и вырезание отверстий под розетки

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

Как сделать из одной розетки несколько:

  • Удаление розетки и подрозетника из стены.
  • Продевание стальной проволоки в отверстие в направлении установки новой точки питания. Делается это для того, чтобы убедиться, что между профилем и стеной можно установить гофрированную трубу с кабелем.
  • Просверливание места для нового подрозетника.
  • К проволоке нужно прокрутить веревку и вытащить обратно.
  • С помощью веревки между двумя розетками протягивается гофрированная труба.
  • В гофру протягиваются провода.

Финальный шаг – соединить электропровода.

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

Какой способ выбрать

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

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

Основные ошибки

Коричневый провод — фаза, синий — ноль, желто-зеленый — заземление

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

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

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

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

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

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

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

Хотелось бы заглянуть за то, над чем мы работаем?

Еженедельный обзор новых путеводителей, подборки и предварительный просмотр того, что должно произойти. Мы отправили наши лучшие выборы Ли Джонсону, электрику с более чем 10-летним опытом проектирования и тестирования электроники, чтобы подтвердить электрические претензии изготовителя.

Это оставило нас с нуля. Хотя мы ожидали найти достаточное количество конкурентов для сортировки, только одно подразделение соответствовало нашим критериям. Опять же, только одна модель соответствовала нашим критериям. Затем он повторил этот тест с выходами, которые мы тестировали, и сравнил результаты.

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

Откуда запитать кабель для питания дополнительной розетки?

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

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

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

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

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

Как провести розетку от розетки

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

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

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

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

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

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

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

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

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

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

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

Как исправить распространенные проблемы с розеткой питания

Как решить распространенные проблемы с розеткой | Обучающие видео, DIY, а также советы и рекомендации по образу жизни

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

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

  • Чтобы проверить наличие неисправных розеток по всему дому, подключите прибор к каждой из них, чтобы проверить, есть ли в ней питание.
  • Перед тем, как приступить к ремонту, отключите питание от сети.
  • Осторожно выньте вилки из розетки. Вытягивание вилки за кабель может повредить контакт между вилкой и розеткой. Это может привести к перегреву вилки, ослаблению проводов или даже к поражению электрическим током (если заземляющий провод отсоединен).
  • Проверьте вилку и розетку на предмет ожогов, жужжания, потрескивания или чрезмерного нагрева. Если произойдет что-либо из этого, мы советуем вам как можно скорее вызвать квалифицированного электрика.

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

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

Прочтите наш отказ от ответственности

Лаура Радд

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

Нет результата

Просмотреть все результаты

Этот веб-сайт использует файлы cookie.Продолжая использовать этот сайт, вы даете согласие на использование файлов cookie. Посетите нашу Политику конфиденциальности и использования файлов cookie. Принять

учебных пособий по программированию на Python


Socket Chatroom server — Создание приложения чата с сокетами на Python

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

Для начала создадим chat_server.py . Какими будут функции нашего сервера?

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

Итак, начнем с импорта и некоторых начальных значений:

 импортный разъем
выбрать импорт

HEADER_LENGTH = 10

IP = "127.0.0.1"
ПОРТ = 1234 

Ничего нового, кроме select import. Что это? Модуль select предоставляет нам операции мониторинга на уровне ОС для вещей, в том числе для сокетов. Это особенно полезно в тех случаях, когда мы пытаемся контролировать множество соединений одновременно. Хотя вы можете использовать цикл for, чтобы просто перебирать все сокеты, использование select будет гораздо более эффективным и будет намного лучше масштабироваться, в основном потому, что он будет работать на уровне вашей ОС, а не на всем протяжении Python.О том, как его использовать, мы поговорим подробнее, когда дойдем до этого момента!

Первоначально установите наш сокет:

 server_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM) 

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

 server_socket.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEADDR, 1) 

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

Далее привязываем и слушаем:

server_socket.привязать ((IP, ПОРТ))

server_socket.listen () 

Затем мы создадим список сокетов для , выберем для отслеживания, а также начнем наши клиентов dict:

список_сокетов = [сервер_сокет]

клиенты = {} 

Некоторая отладочная информация:

 print (f'Прослушивание соединений на {IP}: {PORT} ... ') 

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

 # Обрабатывает получение сообщений
def receive_message (client_socket):
    пытаться:
        проходят

    Кроме:

        # Что-то пошло не так, например, пустое сообщение или внезапный выход из клиента.return False 

Шаг 1 для получения сообщения — прочитать заголовок:

 # Обрабатывает получение сообщений
def receive_message (client_socket):
    пытаться:
        message_header = client_socket.recv (HEADER_LENGTH)

    Кроме:

        # Что-то пошло не так, например, пустое сообщение или внезапный выход из клиента.
        return False 

Если клиент корректно закрывает соединение, то будет выдано socket.close () без заголовка. Мы справимся с этим с:

, если не len (message_header):
            return False 

Затем мы можем преобразовать наш заголовок в длину:

 message_length = int (message_header.декодировать ('utf-8'). strip ()) 

Наконец, мы можем вернуть некоторые значимые данные:

 return {'header': message_header, 'data': client_socket.recv (message_length)} 

Полный код сейчас:

 def receive_message (client_socket):
    пытаться:
        message_header = client_socket.recv (HEADER_LENGTH)

        если не len (message_header):
            return False

        message_length = int (message_header.decode ('utf-8'). strip ())

        return {'header': message_header, 'data': client_socket.recv (message_length)}

    Кроме:
        return False 

Теперь то, что мы хотим сделать, — это в непрерывном цикле получать сообщения для всех наших клиентских сокетов, а затем отправлять все сообщения всем клиентским сокетам. Для начала мы будем использовать цикл , а затем , а затем воспользуемся select.select :

 read_sockets, _, exception_sockets = select.select (список_сокетов, [], список_сокетов) 

Это не совсем просто, но довольно просто.Мы просто используем select. Выберите здесь для вышеупомянутого ввода-вывода на уровне ОС для наших сокетов. Эта функция принимает в качестве параметров rlist , wlist и xlist … которые представляют собой список чтения, список записи и список ошибок соответственно. Эта функция возвращает те же 3 элемента, где возвращаются «подмножества» входных списков, где подмножеством является список тех сокетов, которые готовы.

Теперь, отсюда, мы собираемся перебрать список read_sockets .Это сокеты, в которых есть данные для чтения.

    для notification_socket в read_sockets:
        если notification_socket == server_socket: 

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

 для notification_socket в read_sockets:
        если notification_socket == server_socket:
            client_socket, client_address = server_socket.accept ()
            user = receive_message (client_socket)
            если пользователь False:
                продолжить 

Итак, с client_socket, client_address = server_socket.accept () мы получаем этот уникальный клиентский сокет и его адрес. Затем мы сохраняем выбранное ими имя пользователя в том, которое они выбрали (это должно быть самое первое, что отправит клиент). Если по какой-то причине этого не произойдет (например, клиент закрылся перед отправкой имени), мы просто продолжим.

Затем мы хотим добавить этот новый client_socket в наш sockets_list

 список_сокетов.append (client_socket) 

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

 клиент [client_socket] = пользователь
            print ('Принято новое соединение от {}: {}, имя пользователя: {}'.format (* client_address, user ['data']. decode ('utf-8'))) 

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

        еще:
            message = receive_message (уведомление_socket) 

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

, если сообщение ложное:
                print ('Закрытое соединение от: {}'. формат (клиенты [уведомленный_сокет] ['данные'].декодировать ('utf-8')))
                sockets_list.remove (уведомленный_сокет)
                del клиенты [notification_socket]

                продолжить 

Теперь, предполагая, что это не было отключением, мы можем получить такую ​​информацию:

 пользователь = клиенты [notification_socket]

            print (f'Получено сообщение от {пользователя ["data"]. decode ("utf-8")}: {message ["data"]. decode ("utf-8")} ') 

Далее мы хотели бы транслировать это всем нашим подключенным клиентам:

 # Итерация по подключенным клиентам и широковещательное сообщение
            для client_socket в клиентах:

                # Но не отправляйте отправителю
                если client_socket! = notification_socket:

                    # Отправить пользователя и сообщение (оба с их заголовками)
                    # Здесь мы повторно используем заголовок сообщения, отправленный отправителем, и сохраненный заголовок имени пользователя, отправляемый пользователем при подключении
                    client_socket.отправить (пользователь ['заголовок'] + пользователь ['данные'] + сообщение ['заголовок'] + сообщение ['данные']) 

Наконец, мы можем обрабатывать сокеты исключения / ошибки с помощью:

 # На самом деле это не обязательно, но на всякий случай обработает некоторые исключения сокетов
    для notification_socket в exception_sockets:

        # Удалить из списка для socket.socket ()
        sockets_list.remove (уведомленный_сокет)

        # Удалить из нашего списка пользователей
        дель клиентов [notification_socket] 

Полный отмеченный код для чат-сервера:

 импортный разъем
выбрать импорт

HEADER_LENGTH = 10

IP = "127.0,0.1 "
ПОРТ = 1234

# Создаем сокет
# socket.AF_INET - семейство адресов, IPv4, некоторые другие возможные: AF_INET6, AF_BLUETOOTH, AF_UNIX
# socket.SOCK_STREAM - TCP, на основе соединения, socket.SOCK_DGRAM - UDP, без установления соединения, дейтаграммы, socket.SOCK_RAW - необработанные IP-пакеты
server_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)

# SO_ - опция сокета
# SOL_ - уровень опций сокета
# Устанавливает REUSEADDR (как вариант сокета) на 1 на сокете
server_socket.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEADDR, 1)

# Привязать, чтобы сервер сообщил операционной системе, что он будет использовать данный IP и порт
# Для сервера, использующего 0.0.0.0 означает прослушивание всех доступных интерфейсов, полезно для локального подключения к 127.0.0.1 и удаленно к IP-интерфейсу LAN
server_socket.bind ((IP, ПОРТ))

# Это заставляет сервер прослушивать новые соединения
server_socket.listen ()

# Список сокетов для select.select ()
список_сокетов = [сервер_сокет]

# Список подключенных клиентов - сокет как ключ, заголовок пользователя и имя как данные
клиенты = {}

print (f'Прослушивание соединений на {IP}: {PORT} ... ')

# Обрабатывает получение сообщений
def receive_message (client_socket):

    пытаться:

        # Получаем наш "заголовок", содержащий длину сообщения, размер определен и постоянен
        message_header = client_socket.recv (HEADER_LENGTH)

        # Если мы не получили данных, клиент корректно закрыл соединение, например, используя socket.close () или socket.shutdown (socket.SHUT_RDWR)
        если не len (message_header):
            return False

        # Преобразовать заголовок в значение типа int
        message_length = int (message_header.decode ('utf-8'). strip ())

        # Вернуть объект заголовка сообщения и данных сообщения
        return {'header': message_header, 'data': client_socket.recv (message_length)}

    Кроме:

        # Если мы здесь, клиент резко закрыл соединение, например, нажав ctrl + c в своем скрипте
        # или просто потерял связь
        # разъем.close () также вызывает socket.shutdown (socket.SHUT_RDWR), который отправляет информацию о закрытии сокета (выключение, чтение / запись)
        # и это тоже причина, когда мы получаем пустое сообщение
        return False

в то время как True:

    # Вызывает системный вызов select () Unix или вызов Windows select () WinSock с тремя параметрами:
    # - rlist - сокеты для отслеживания входящих данных
    # - wlist - сокеты для отправки данных (проверяет, например, не заполнены ли буферы и готов ли сокет к отправке данных)
    # - xlist - сокеты, которые нужно отслеживать на предмет исключений (мы хотим отслеживать все сокеты на предмет ошибок, поэтому мы можем использовать rlist)
    # Возвращает списки:
    # - чтение - сокеты, по которым мы получили некоторые данные (так нам не нужно проверять сокеты вручную)
    # - запись - сокеты, готовые для передачи данных через них
    # - ошибки - сокеты с некоторыми исключениями
    # Это блокирующий вызов, здесь выполнение кода будет "ждать" и "получать" уведомление в случае, если необходимо предпринять какие-либо действия
    read_sockets, _, exception_sockets = выберите.выберите (список_сокетов, [], список_сокетов)


    # Итерировать по уведомленным сокетам
    для notification_socket в read_sockets:

        # Если уведомленный сокет - это серверный сокет - новое соединение, примите его
        если notification_socket == server_socket:

            # Принять новое соединение
            # Это дает нам новый сокет - клиентский сокет, подключенный только к данному клиенту, он уникален для этого клиента
            # Другой возвращаемый объект - ip / port set
            client_socket, client_address = server_socket.accept ()

            # Клиент должен сразу отправить свое имя, получить его
            user = receive_message (client_socket)

            # Если False - клиент отключился до того, как отправил свое имя
            если пользователь False:
                Продолжать

            # Добавить принятый сокет в список select.select ()
            sockets_list.append (client_socket)

            # Также сохраните имя пользователя и заголовок имени пользователя
            клиенты [client_socket] = пользователь

            print ('Принято новое соединение от {}: {}, имя пользователя: {}'.формат (* client_address, user ['data']. decode ('utf-8')))

        # Другой существующий сокет отправляет сообщение
        еще:

            # Получить сообщение
            message = receive_message (уведомляемый_сокет)

            # Если False, клиент отключился, очистка
            если сообщение ложно:
                print ('Закрытое соединение из: {}'. формат (клиенты [notification_socket] ['data']. decode ('utf-8')))

                # Удалить из списка для socket.socket ()
                sockets_list.remove (уведомленный_сокет)

                # Удалить из нашего списка пользователей
                del клиенты [notification_socket]

                Продолжать

            # Получить пользователя по уведомленному сокету, чтобы мы знали, кто отправил сообщение
            пользователь = клиенты [notification_socket]

            print (f'Получено сообщение от {пользователя ["data"].decode ("utf-8")}: {сообщение ["данные"]. decode ("utf-8")} ')

            # Итерация по подключенным клиентам и широковещательное сообщение
            для client_socket в клиентах:

                # Но не отправляйте отправителю
                если client_socket! = notification_socket:

                    # Отправить пользователя и сообщение (оба с их заголовками)
                    # Здесь мы повторно используем заголовок сообщения, отправленный отправителем, и сохраненный заголовок имени пользователя, отправляемый пользователем при подключении
                    client_socket.send (пользователь ['заголовок'] + пользователь ['данные'] + сообщение ['заголовок'] + сообщение ['данные'])

    # На самом деле это не обязательно, но на всякий случай обработает некоторые исключения сокетов
    для notification_socket в exception_sockets:

        # Удалить из списка для сокета.разъем()
        sockets_list.remove (уведомленный_сокет)

        # Удалить из нашего списка пользователей
        del клиенты [notification_socket]

 

Следующий учебник: Socket Chatroom client — Создание чат-приложения с сокетами на Python


Python Socket tutorial — Сетевое программирование Python с сокетами

последнее изменение 6 июля 2020 г.

В руководстве Python Socket показано, как выполнять сетевое программирование Python с помощью сокетов.Программирование сокетов низкоуровневое. Цель этого руководства — познакомить сетевое программирование, включая эти низкоуровневые детали. Есть Python более высокого уровня API, такие как Twisted, которые могут подойти лучше.

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

Модуль Python socket предоставляет интерфейс для API сокетов Berkeley.

Примечание: В сети термин сокет имеет другое значение. Он используется для комбинации IP-адреса и номера порта.

Сетевые протоколы

TCP / IP — это набор протоколов, используемых устройствами для связи через Интернет. и большинство локальных сетей. TCP более надежен, имеет расширенную проверку ошибок и требует больше ресурсов. Он используется такими службами, как HTTP, SMTP или FTP. UDP намного менее надежен, имеет ограниченную проверку ошибок и требует меньше ресурсов.Он используется такими службами, как VoIP.

Сокет .SOCK_STREAM используется для создания сокета для TCP и socket.SOCK_DGRAM для UDP.

Семейство адресов

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

  • AF_UNIX, AF_LOCAL — Местная связь
  • AF_INET — Интернет-протоколы IPv4
  • AF_INET6 — Интернет-протоколы IPv6
  • AF_IPX — IPX — протоколы Novell
  • AF_BLUETOOTH — Протоколы беспроводной связи Bluetooth
  • AF_PACKET — Интерфейс пакетов низкого уровня

Для семейства адресов AF_INET указывается пара (хост, порт).Хост — это строка, представляющая либо имя хоста в Обозначение Интернет-домена, например example.com или адрес IPv4, например 93.184.216.34 , а порт — целое число.

Python получить IP-адрес

С помощью gethostbyname () мы получаем IP-адрес хоста.

get_ip.py

#! / usr / bin / env python

импортный сокет

ip = socket.gethostbyname ('example.com')
печать (ip)
 

Пример печатает IP-адрес example.com .

$ ./get_ip.py
93.184.216.34
 

Это результат.

Python, пример сокета UDP

UDP — это протокол связи, который передает независимые пакеты по сеть без гарантии прибытия и без гарантии порядка доставки. Одна из служб, использующих UDP, — это Quote of the Day (QOTD).

qotd_client.py

#! / usr / bin / env python

импортный сокет

с socket.socket (socket.AF_INET, socket.SOCK_DGRAM) как s:

    сообщение = б ''
    addr = ("djxmmx.нетто », 17)

    s.sendto (сообщение, адрес)

    данные, адрес = s.recvfrom (1024)
    печать (data.decode ())
 

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

импортный сокет
 

Импортируем модуль socket .

с socket.socket (socket.AF_INET, socket.SOCK_DGRAM) как s:
 

Создается сокет дейтаграммы для IPv4.

сообщение = б ''
 

Отправляем пустое сообщение; служба QOTD работает, отправляя произвольные данные в розетку; он просто отвечает цитатой.Чтобы общаться по TCP / UDP, мы используем двоичные строки.

адрес = ("djxmmx.net", 17)
 

Предоставляем адрес и порт.

s.sendto (сообщение, адрес)
 

Мы отправляем данные с помощью метода sendto () .

данные, адрес = s.recvfrom (1024)
 

Сокеты UDP используют recvfrom () для получения данных. Его параметром является размер буфера. Возвращаемое значение — пара (данные, адрес), где данные — это байт. строка, представляющая полученные данные, а адрес — это адрес сокета отправка данных.

печать (data.decode ())
 

Распечатанные данные печатаем в терминал.

$ ./qotd_client.py
«О, нервы, нервы, тайны этой машины, называемой человеком!
    О, то немногое, что сбивает с толку, бедняги, какие мы есть!
    Чарльз Диккенс (1812-70)
 

Это пример вывода.

Пример сокета TCP Python

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

Примечание. Серверы времени приходят и уходят, поэтому мы можем нужно найти рабочий сервер на https://www.ntppool.org/en/.

time_client.py

#! / usr / bin / env python

импортный сокет

с socket.socket (socket.AF_INET, socket.SOCK_STREAM) как s:

    host = "time.nist.gov"
    порт = 13

    s.connect ((хост, порт))
    s.sendall (b '')
    print (str (s.recv (4096), 'utf-8'))
 

В примере текущее время определяется путем подключения к времени TCP-сокет сервера.

с socket.socket (socket.AF_INET, socket.SOCK_STREAM) как s:
 

Создан TCP-сокет для IPv4.

host = "time.nist.gov"
порт = 13
 

Это имя хоста и номер порта сервера рабочего времени.

s.connect ((хост, порт))
 

Подключаемся к удаленной розетке с помощью connect () .

s.sendall (b '')
 

Метод sendall () отправляет данные в сокет. Розетка должна быть подключен к удаленной розетке.Он продолжает отправлять данные из байтов, пока все данные отправлены или произошла ошибка.

print (str (s.recv (4096), 'utf-8'))
 

Распечатываем полученные данные. Метод recv () получает до Buffersize байтов от сокета. Когда данные недоступны, он блокируется до доступен хотя бы один байт или пока удаленный конец не будет закрыт. Когда пульт end закрывается, и все данные читаются, возвращается пустая строка байтов.

Запрос заголовка сокета Python

Запрос HEAD — это запрос GET без тела сообщения.Заголовок запрос / ответ содержит метаданные, такие как версия протокола HTTP или Тип содержимого.

head_request.py

#! / usr / bin / env python

импортный сокет

с socket.socket (socket.AF_INET, socket.SOCK_STREAM) как s:

    s.connect (("webcode.me", 80))
    s.sendall (b "HEAD / HTTP / 1.1 \ r \ nHost: webcode.me \ r \ nAccept: text / html \ r \ n \ r \ n")
    print (str (s.recv (1024), 'utf-8'))
 

В этом примере мы отправляем запрос HEAD на webcode.me .

с.sendall (b "HEAD / HTTP / 1.1 \ r \ nHost: webcode.me \ r \ nAccept: text / html \ r \ n \ r \ n")
 

Запрос головы выдается с командой HEAD , за которой следует URL ресурса и версия протокола HTTP. Обратите внимание, что \ r \ n являются обязательная часть коммуникационного процесса. Подробности описаны в документе RFC 7231.

$ head_request.py
HTTP / 1.1 200 ОК
Сервер: nginx / 1.6.2
Дата: вс, 08 сен 2019 11:23:25 GMT
Тип содержимого: текст / html
Длина содержимого: 348
Последнее изменение: Сб, 20 июл 2019, 11:49:25 GMT
Подключение: keep-alive
ETag: "5d32ffc5-15c"
Accept-Ranges: байты
 

Это результат.

Запрос GET для сокета Python

Метод HTTP GET запрашивает представление указанного ресурса. Запросы, использующие GET, должны только получать данные.

get_request.py

#! / usr / bin / env python

импортный сокет

с socket.socket (socket.AF_INET, socket.SOCK_STREAM) как s:

    s.connect (("webcode.me", 80))
    s.sendall (b "GET / HTTP / 1.1 \ r \ nHost: webcode.me \ r \ nAccept: text / html \ r \ nConnection: close \ r \ n \ r \ n")

    в то время как True:

        данные = s.recv (1024)

        если не данные:
            перемена

        печать (данные.декодировать ())
 

Пример читает домашнюю страницу webcode.me с использованием Получить запрос.

s.sendall (b "GET / HTTP / 1.1 \ r \ nHost: webcode.me \ r \ nAccept: text / html \ r \ nConnection: close \ r \ n \ r \ n")
 

Для протокола HTTP 1.1 соединения по умолчанию могут быть постоянными. Вот почему мы отправить Connection: закрыть заголовок .

в то время как True:

    данные = s.recv (1024)

    если не данные:
        перемена

    печать (data.decode ())
 

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

$ ./get_request.py
HTTP / 1.1 200 ОК
Сервер: nginx / 1.6.2
Дата: вс, 08 сен 2019 11:39:34 GMT
Тип содержимого: текст / html
Длина содержимого: 348
Последнее изменение: Сб, 20 июл 2019, 11:49:25 GMT
Подключение: keep-alive
ETag: "5d32ffc5-15c"
Доступ-Контроль-Разрешить-Происхождение: *
Accept-Ranges: байты




    
    
     Моя html-страница 



    

Сегодня прекрасный день. Купаемся и ловим рыбу.

Привет. Как поживаешь?

Это результат.

Пример клиент-сервера Echo

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

echo_server.py

#! / usr / bin / env python

импортный сокет
время импорта

с socket.socket () как s:

    хост = 'локальный'
    порт = 8001

    s.bind ((хост, порт))
    print (f'socket привязан к {port} ')

    s.listen ()

    con, addr = s.accept ()

    с доводом:
   
        в то время как True:

            data = con.recv (1024)

            если не данные:
                перемена

            con.sendall (данные)
 

Эхо-сервер отправляет клиентское сообщение обратно клиенту.

хост = 'локальный'
порт = 8001
 

Сервер работает на локальном хосте на порту 8001.

s.bind ((хост, порт))
 

Метод bind () устанавливает конечную точку связи. Он привязывает сокет к указанному адресу. Сокет еще не должен быть привязан. (Формат адреса зависит от семейства адресов.)

s.listen ()
 

Метод listen () позволяет серверу принимать соединения. В сервер теперь может прослушивать подключения к сокету. Модель Слушать () имеет невыполненный параметр.В нем указывается количество непринятых соединения, которые система разрешит до отказа от новых соединений. Параметр является необязательным, начиная с Python 3.5. Если не указано, отставание по умолчанию значение выбрано.

con, addr = s.accept ()
 

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

Обратите внимание, что accept () создает новый сокет для связи с клиент, который отличается от сокета для прослушивания.

echo_client.py

#! / usr / bin / env python

импортный сокет

с socket.socket (socket.AF_INET, socket.SOCK_STREAM) как s:

    host = "localhost"
    порт = 8001

    s.connect ((хост, порт))
    s.sendall (привет)
    print (str (s.recv (4096), 'utf-8'))
 

Клиент отправляет сообщение на эхо-сервер.

Пример асинхронного сервера

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

async_server.py

#! / usr / bin / env python

# из threading import current_thread

импортировать asyncio


async def handle_client (читатель, писатель):

    data = (ждать reader.read (1024))

    Writer.write (данные)
    писатель.close ()


цикл = asyncio.get_event_loop ()
loop.create_task (asyncio.start_server (handle_client, 'localhost', 8001))
петля.run_forever ()
 

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

$ ab -c 50 -n 1000 http: // локальный: 8001 /
 

Например, мы можем протестировать производительность с помощью инструмента тестирования Apache. В нашем случае команда отправляет 1000 запросов, по 50 за раз.

В этом руководстве мы показали, как создавать простые сетевые программы с сокетами. в Python.

Список всех руководств по Python.

Использование сокетов — INET 4.Документация 2.0

Руководство разработчика navigate_next Использование сокетов поиск

Быстрый поиск

код

Показать источник

Содержание
  • Демонстрации
    • Эмуляция
      • Тестирование демона маршрутизации Linux в имитированной среде
      • Использование смоделированных приложений в реальной сети
      • Использование реальных приложений в моделируемой сети
    • Общий
      • Запись PCAP
      • Дифференцированные услуги
    • Мобильные
      • Мобильные модели
      • Объединение мобильных моделей
      • 3D мобильность
    • Маршрутизация
      • Протоколы маршрутизации MANET
    • Визуализация
      • Визуализация отбрасывания пакетов
      • Визуализация действия транспортного пути
      • Визуализация активности сетевого пути
      • Визуализация активности канала передачи данных
      • Визуализация активности физических соединений
      • Визуализация активности радиообмена
      • Визуализация таблиц маршрутизации
      • Отображение IP-адресов и другой информации интерфейса
      • Визуализация IEEE 802.11 Членство в сети
      • Визуализация транспортных соединений
      • Визуализация спектра радиосигналов
      • Визуализация сетевых узлов
      • Визуализация физической среды
      • Визуализация мобильности узлов
      • Визуализация местности и городской среды
      • Фигурки приборов
      • Стиль и внешний вид
      • Визуализация информации о подмодулях
      • Визуализация статистики
    • Беспроводная связь
      • Модели с потерей пути
      • Моделирование направленных антенн
      • Протоколы MAC для беспроводных сенсорных сетей
      • IEEE 802.15.4 Умный дом
      • Потребляемая мощность
      • Сосуществование IEEE 802.11 и 802.15.4
      • Представления аналоговых доменов беспроводного сигнала
      • Пропускная способность IEEE 802.11
      • Передача обслуживания IEEE 802.11
      • Контроль скорости IEEE 802.11

PHP: socket_create — Вручную

(PHP 4> = 4.1.0, PHP 5, PHP 7)

socket_create — 创建 一个 套接字 (通讯 节点)

说明

socket_create (int $ домен , int $ тип , int $ протокол ): ресурс

参数

домен

домен 参数 指定 哪个 协议 用 在 当前 套接字 上。

的 地址 / 协议
Домен 描述
AF_INET IPv4 网络 协议 。TCP 和 UDP 都可 使用 此 协议。
AF_INET6 IPv6 网络 协议 。TCP 和 UDP 都可 使用 此 协议。
AF_UNIX 通讯 协议。 具有 高性能 和 低成本 的 IPC (进程 间 通讯)。
тип

тип 参数 用于 选择 套接字 使用 的 类型。

的 套接字 类型
类型 描述
SOCK_STREAM 提供 一个 顺序 化 的 、 可靠 的 、 全双工 的 、 基于 连接 的 字节 流。 支持 数据 传送 控制 机制 。TCP 协议 即 基于 这种 流 式 套接字。
SOCK_DGRAM 提供 数据 报 文 的 支持。 (无 连接 , 不 可靠 、 固定 最大 长度).UDP 即 基于 这种 数据 报 文 套接字。
SOCK_SEQPACKET 提供 一个 顺序 化 的 、 可靠 的 、 全双工 的 、 面向 连接 的 、 固定 最大 长度 的 数据 通信 ; 数据 端 通过 接收 每 数据 读取 整个 数据
SOCK_RAW 读取 原始 的 网络 协议。 这种 特殊 的 套接字 可 用于 手工 构建 任意 类型 的 协议。 一般 套接字 来 实现 ICMP 请求 (例如 ping)。
SOCK_RDM 提供 一个 可靠 的 数据 层 , 但 不 保证 到达 顺序。 一般 的 操作系统 都未 实现 此 功能。
протокол

протокол 参数 , 是 设置 指定 домен 下 的 具体 协议。 这个 值 可以 使用 getprotobyname () 进行 读取。 如果 的 协议 是 TCP 或 UDP , 可以 直接 使用 常量 SOL_TCP SOL_UDP

常见 协议
名称 描述
icmp Протокол управляющих сообщений Интернета 用于 网关 和 主机 报告 的 数据 通信。 例如 «ping» 命令 (在 目前 大部分 的 操作系统 中) 就是 使用 ICMP 协议 实现 的。
udp Протокол дейтаграмм пользователя 一个 无 连接 的 、 不 可靠 的 、 具有 固定 最大 长度 的 报 文 协议 由于 特性 UDP 拥有 最小 的 协议 开销。
tcp Протокол управления передачей 一个 可靠 的 、 基于 连接 的 、 面向 数据 流 的 全双工 协议 。TCP 保障 所有 的 数据 包 是 按照 其 发送 顺序 而 接收 的。 如果 任意 包 通讯 时 丢失 TCP 自动 重 发 数据 包 直到 目标 主机 接收。 因为 可靠性 和 性能 的 原因 , TCP 在 数据 传输 层 使用 8bit 字节 边界。 因此 TCP 应用 必须 允许 传送 文 的 可能。

返回

socket_create () 正确 时 返回 一个 套接字 , 失败 时 返回 FALSE 。 要 读取 错误 代码 , 可以 调用 socket_last_error ()。 这个 错误 代码 可以 通过 socket_strerror () 读取 文字 的 错误 说明。

更新

Версия 说明
5.0,0 增加 AF_INET6 支持。

错误 / 异常

使用 一个 无效 的 domain type socket_create () 使用 AF_INET SOCK_STREAM 替代 无效 参数 , 同时 会 发出 E_WARNING 警告 信息。

Мобильные дневники Ragnarok Online: подключение оборудования

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

Основные требования к розетке оборудования
  1. Зенни
  2. Время и терпение, потраченные на исследования и получение большего количества зенни

Как добавить розетку в ваше оборудование

1. Найдите одного из трех НИП Socketing Equip ниже.

Баренд Угарте в Геффене

Для установки гнезда: оружие, для левой руки и броня


Bloto Ugarte in Payon

Для розетки: аксессуар


Аберк Угарте в Морроке

Для установки гнезда: ботинки и накидка (одежда)

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

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

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

… или получить их на бирже.

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

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

4. Поговорите с NPC и заплатите необходимую плату (помимо 10 единиц такого же оборудования)

Я не пробовал добавлять сокеты ко всем, но вот стоимость тех, которые я пробовал.

  • Оружие = 10,000z
  • Броня = 50,000z
  • Ботинок = 50,000z
  • Аксессуар = 100,000z

5. Готово. После этого вы получите предмет с сокетом. Его 100% успех.

Что важно знать

  • Обновление оборудования будет сохранено.
  • Чары для снаряжения будут сохранены.
  • Улучшение оборудования будет сохранено.
  • Доработка оборудования будет сохранена.
  • Обновление вашего оборудования до его окончательного вида БУДУТ удалить гнездо .
    • Если я улучшу это Mage Coat III до Robe of Casting, я потеряю гнездо.
    • Убедитесь, что вы собираетесь добавить сокет в окончательную форму оборудования (если вы хотите достичь его окончательной формы)
    • Я добавил сокет к своему Mage Coat, так как считаю его окончательной формой.(Я не смогу надеть его, если улучшу до Robe of Casting)

Некоторые до и после

Обновление сохраняется.

Чары сохраняются.


Доработка сохраняется

Улучшение сохраняется

Чары сохранены

.

Оставить комментарий