Разное

Как подключить розетку к розетке: из одной сделать две или несколько (размножить, вывести дополнительные)

из одной сделать две или несколько (размножить, вывести дополнительные)

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

Содержание

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

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

Ограничения:

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

Главный минус решения заключается в ограничении предельной нагрузки. При включении мощной техники в одну розетку нагреваться будут все, т.к. ток неизбежно проходит через всю конструкцию одновременно. На розетки обычно кидают провод сечением 2,5 кв. мм из меди, но «самоделкины» иногда используют другой, алюминиевый или меньшего сечения. Например, 1,5 кв. мм, который «по умолчанию» идет только на освещение.

Полезные статьи:

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

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

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

Варианты обустройства

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

Особенности:

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

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

Читайте также:

Как сделать электропроводку на кухне — выбрать схему разводки, проложить кабель, установить щиток и розетки

Что понадобится для работы

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

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

Выбор способа прокладки кабеля

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

Подробнее:

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

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

Процесс установки

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

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

  1. Снять с розетки декоративную рамку. Оценить, насколько остальная конструкция мешает вырезать отверстие в стене под второй подрозетник.
  2. Ослабить распирающие усики, удерживающие внутреннюю часть розетки для свободного доступа к контактам.
  3. Вырезать отверстие при помощи дрели с насадкой, имеющей подходящий диаметр, глубину точно под подрозетник.
  4. Вставить второй экземпляр, закрепить небольшим количеством шпаклевки, чтобы корпус самопроизвольно не двигался.
  5. Прорезать в корпусе подрозетников углубление под кабель, если отсутствуют штатные отверстия (лучше с запасом, чтобы после сборки не передавить изоляцию). 
  6. Подключить вторую розетку к первой небольшими отрезками кабеля, соответственно фазу, ноль и заземление.
  7. Последовательно вставить оба механизма и закрепить распирающими усиками, чтобы они были закреплены на одном уровне в отношении горизонтали стены.
  8. Прозвонить мультиметром на предмет отсутствия короткого замыкания между проводами и надежного контакта с нужными клеммами.
  9. Включить «автомат», проверить наличие напряжения на обоих розетках. Затем отключить питание и поставить на место обе декоративные рамки или одну сдвоенную.

В продаже встречаются конструкции подрозетников и самих розеток, адаптированных к подобным объединениям. Стоит оценить такой вариант, возможно, будет рациональнее заменить обе розетки на однотипные. При подключении 3-4-5 блоков последовательность с вырезанием отверстия в стене и подключением короткими отрезками кабеля надо будет повторить соразмерно количеству точек. Такие конфигурации желательно «закрывать» только многопостовыми накладками.

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

Читайте также: Черные розетки и выключатели в интерьере: советы по подбору и сочетанию

Немного о безопасности

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

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

Выводы

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

Понравилась статья? Расскажите о ней друзьям:

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

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

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

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

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

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

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

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

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

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

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

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

Программирование сокетов на Python — GeeksforGeeks

Программирование сокетов — это способ соединения двух узлов в сети для связи друг с другом. Один сокет (узел) прослушивает определенный порт с IP-адресом, а другой сокет обращается к другому, чтобы сформировать соединение. Сервер формирует сокет слушателя, в то время как клиент обращается к серверу.

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

 импортный сокет
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

Здесь мы создали экземпляр сокета и передали ему два параметра. Первый параметр — AF_INET , а второй — SOCK_STREAM . AF_INET относится к семейству адресов ipv4. SOCK_STREAM означает протокол TCP, ориентированный на соединение.
Теперь мы можем подключиться к серверу через этот сокет.

Подключение к серверу:  

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

 $ ping www.google.com 

Вы также можете найти IP-адрес с помощью python: 

 сокет импорта
ip = socket.gethostbyname('www.google.com')
print ip 

Вот пример скрипта для подключения к Google.

Python3

импорт сокет

импорт sys

 

попробовать :

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

     print ( "Сокет успешно создан" 90 037 )

кроме socket.error as err:

     print ( "не удалось создать сокет с ошибкой %s" % (ошибка))

 

порт = 80

 

попытка :

     host_ip = socket.gethostbyname( 'www.google.com' )

кроме socket.gaierror:

 

    

     печать ( "произошла ошибка при разрешении хоста" )

     sys.exit()

 

s.connect((host_ip, port))

 

print ( "сокет успешно подключен к google " )

Выход :

 Сокет успешно создан
произошла ошибка при разрешении хоста 

Здесь, когда мы будем успешно подключены, вывод будет:

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

Простая серверно-клиентская программа:  

Сервер:  

У сервера есть метод bind(), который привязывает его к определенному IP-адресу и порту, чтобы он мог прослушивать входящие запросы на этот IP-адрес и порт. У сервера есть метод listen(), который переводит сервер в режим прослушивания. Это позволяет серверу прослушивать входящие соединения. И, наконец, у сервера есть методы accept() и close(). Метод accept инициирует соединение с клиентом, а метод close закрывает соединение с клиентом.

Python3

импорт сокет            

 

s = socket. socket()        

print ( "Сокет успешно создан" )

 

порт = 12345                      

 

s.bind(('', порт))        

печать ( "сокет привязан к %s" % (порт))

 

s.listen( 5 )    

печать ( "гнездо прослушивание" )          

 

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

 

90 036    c, адрес = s.accept()    

   печать ( 'Соединение получено от' , адрес )

 

  

   c.send( 'Спасибо за подключение' . encode())

 

  

   c.close()

    

90 036   

   перерыв

  • Первым делом импортируем необходимый сокет.
  • Затем мы создали объект сокета и зарезервировали порт на нашем компьютере.
  • После этого мы привязали наш сервер к указанному порту. Передача пустой строки означает, что сервер также может прослушивать входящие соединения с других компьютеров. Если бы мы прошли 127.0.0.1, то он прослушивал бы только те звонки, которые были сделаны внутри локального компьютера.
  • После этого мы переводим сервер в режим прослушивания. 5 здесь означает, что 5 соединений находятся в ожидании, если сервер занят, и если 6-й сокет пытается подключиться, то в соединении отказывается.
  • Наконец, мы делаем цикл while и начинаем принимать все входящие соединения и закрывать эти соединения после благодарственного сообщения всем подключенным сокетам.

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

 # запустите сервер
$ сервер python.py
# держать вышеуказанный терминал открытым
# теперь откройте другой терминал и введите:
 
$ телнет локальный хост 12345 9]'.
Спасибо за подключениеСоединение закрыто внешним хостом. 

Этот вывод показывает, что наш сервер работает.
Теперь для клиентской части: 

Python3

import socket            

 

s = socket.socket()        

 

порт = 12345                

 

s.connect(( '127.0.0.1' , порт))

 

печать (s. recv( 1024 90 037 ).decode())

s.close()    

      

  • Прежде всего, мы создаем объект-сокет.
  • Затем мы подключаемся к локальному хосту через порт 12345 (порт, на котором работает наш сервер) и, наконец, мы получаем данные с сервера и закрываем соединение.
  • Теперь сохраните этот файл как client.py и запустите его из терминала после запуска сценария сервера.
 # запускаем сервер:
$ сервер python.py
Сокет успешно создан
сокет привязан к 12345
сокет слушает
Получил соединение от ('127.0.0.1', 52617) 
 # запускаем клиент:
$ Python client.py
Спасибо за подключение. Если вам нравится GeeksforGeeks и вы хотели бы внести свой вклад, вы также можете написать статью, используя submit.geeksforgeeks.org, или отправить свою статью по адресу [email protected]. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам.  

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


Учебники по программированию на Python



Добро пожаловать в учебник по сокетам в Python 3. Нам есть что рассказать, так что давайте сразу приступим. Библиотека socket является частью стандартной библиотеки, поэтому он у вас уже есть.

 импортная розетка
# создаем сокет
# AF_INET == ipv4
# SOCK_STREAM == TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

Переменная s — это наш сокет TCP/IP. AF_INET относится к семейству или домену, это означает ipv4, в отличие от ipv6 с AF_INET6. SOCK_STREAM означает, что это будет сокет TCP, который является нашим типом сокета. TCP означает, что он будет ориентирован на соединение, а не без соединения.

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

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

В случае сервера вы привяжете сокет к некоторому порту на сервере (localhost). В случае клиента вы подключите сокет к этому серверу на том же порту, который использует серверный код.

Давайте пока сделаем этот код серверным:

 s.bind((socket.gethostname(), 1234)) 

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

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

Давайте составим очередь из 5:

 s.listen(5) 

А теперь просто слушаем!

 пока верно:
    # теперь наша конечная точка знает о ДРУГОЙ конечной точке.
    clientsocket, адрес = s.accept()
    print(f"Соединение с {адреса} установлено.") 

Полный код для server.py :

 сокет импорта
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((сокет.gethostname(), 1234))
с.слушай(5)
пока верно:
    # теперь наша конечная точка знает о ДРУГОЙ конечной точке.
    clientsocket, адрес = s.accept()
    print(f"Соединение с {адреса} установлено.")
 

Теперь нам нужно сделать код нашего клиента!

 импортная розетка
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

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

 s.connect((socket.gethostname(), 1234)) 

В более традиционном смысле клиент и сервер фактически не имеют клиента и сервера на одной машине. Если вы хотите, чтобы две программы общались друг с другом локально, вы могли бы сделать это, но обычно ваш клиент, скорее всего, будет подключаться к какому-то внешнему серверу, используя свой общедоступный IP-адрес, а не 9.0037 сокет.gethostname() . Вместо этого вы передадите строку IP.

Полный client.py код до этого момента:

 сокет импорта
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((socket.gethostname(), 1234)) 

Хорошо, теперь мы просто запускаем оба. Сначала запустим наш сервер:

python3 server.py

python3 client.py

На нашем сервере мы должны увидеть:

 Connection from ('192.168.86.34', 54276). 

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

Итак, мы установили соединение, и это здорово, но мы действительно хотим отправлять сообщения и/или данные туда и обратно. Как мы это делаем?

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

Внутри server.py , давайте добавим:

 clientsocket.send(bytes("Привет!!!","utf-8")) 

В наш цикл while , так что наш полный код для server.py становится:

 импортный сокет
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((сокет.gethostname(), 1234))
с.слушай(5)
пока верно:
    # теперь наша конечная точка знает о ДРУГОЙ конечной точке.
    clientsocket, адрес = s.accept()
    print(f"Соединение с {адреса} установлено.")
    clientsocket.send(bytes("Привет!!!","utf-8")) 

Итак, мы отправили данные, теперь хотим их получить. Итак, в нашем client.py мы сделаем:

 msg = s.recv(1024) 

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

Тогда давайте сделаем что-нибудь простое с полученными данными, например, распечатаем их!

 print(msg. decode("utf-8")) 

Круто, наш полный код client.py теперь выглядит так:

 import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
сообщение = s.recv(1024)
print(msg.decode("utf-8")) 

Теперь запустите server.py и затем client.py . Наш server.py показывает:

 Соединение с ('192.168.86.34', 55300) установлено. 

В то время как наш client.py теперь показывает:

 Привет!!! 

И выходит. Итак, давайте немного подкорректируем этот буфер, изменив client.py recv так, чтобы он содержал 8 байт за раз.

client.py

 сокет импорта
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
сообщение = s.recv(8)
print(msg.decode("utf-8")) 

Теперь повторно запустите client.py , и вместо этого вы увидите что-то вроде:

 Эй, 

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

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

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

 import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
пока верно:
    сообщение = s.recv(8)
    print(msg.decode("utf-8")) 

Итак, на данный момент мы будем получать эти данные и печатать их кусками. Если мы запустим client.py теперь мы видим:

 Привет
э!!! 

Вы также должны принять к сведению, что наш client.py больше не завершается. Это соединение сейчас остается открытым. Это связано с нашим циклом while . Мы можем использовать .close() в сокете, чтобы закрыть его, если захотим. Мы можем сделать это либо на сервере, либо на клиенте... или на обоих. Вероятно, неплохо быть готовым к тому, что соединение прервется или будет закрыто по какой-либо причине. Например, мы могли бы закрыть соединение после отправки нашего сообщения на сервер:

server.py

 сокет импорта
s = socket.socket(socket.AF_INET, socket. SOCK_STREAM)
s.bind((сокет.gethostname(), 1234))
с.слушай(5)
пока верно:
    # теперь наша конечная точка знает о ДРУГОЙ конечной точке.
    clientsocket, адрес = s.accept()
    print(f"Соединение с {адреса} установлено.")
    clientsocket.send(bytes("Привет!!!","utf-8"))
    clientsocket.close() 

Однако, если мы запустим это, мы увидим наш client.py , а затем отправим кучу ничего, потому что данные, которые он получает, ну, ну, ничего. Оно пустое. 0 байт, но мы по-прежнему просим его распечатать то, что он получает, даже если это ничего! Мы могли бы это исправить:

client.py

 сокет импорта
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
полное_сообщение = ''
пока верно:
    сообщение = s.recv(8)
    если лен (сообщение)
 

Итак, теперь мы буферизируем сообщение целиком. Когда мы достигаем конца, который мы отмечаем, получая 0 байтов, мы прерываем, а затем возвращаем сообщение. На этом заканчивается client. py . Теперь клиент, вероятно, хочет также поддерживать соединение. Как мы можем это сделать? Еще , в то время как цикл может помочь.

клиент.py

 импортная розетка
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
пока верно:
    полное_сообщение = ''
    пока верно:
        сообщение = s.recv(8)
        если лен (сообщение)
 

Конечно, мы, вероятно, должны еще раз убедиться, что full_msg имеет что-то существенное, прежде чем распечатать его:

клиент.py

 импортная розетка
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((сокет.gethostname(), 1234))
пока верно:
    полное_сообщение = ''
    пока верно:
        сообщение = s.recv(8)
        если len(msg) 0:
        печать (полное_сообщение) 

Это работает, но есть проблемы. Что произойдет, если мы перестанем закрывать клиентский сокет на стороне сервера? На самом деле мы никогда не получаем сообщения! Почему это?

TCP — это коммуникационный *поток*.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *