Можно ли подключить розетку от розетки: Что будет если подключить розетку к розетке
что произойдет, если подключить розетку к розетке / Оффтопик / iXBT Live
Для работы проектов iXBT.com нужны файлы cookie и сервисы аналитики.
Продолжая посещать сайты проектов вы соглашаетесь с нашей
Политикой в отношении файлов cookie
Наверняка многие из нас хоть раз в жизни задавались вопросом: «Что произойдет если все-таки попытаться соединить две розетки при помощи провода с 2-мя вилками на концах?». В статье мы рассмотрим три теоретических варианта развития событий, на тот случай, если вы все-таки решитесь провести данный эксперимент у себя дома.
Розетка
Все мы хорошо знакомы с электрической розеткой, поскольку практически каждый день используем ее в повседневной жизни для передачи энергии с бытовой сети к электроприбору. Конструкция розетки достаточно простая, в ней предусмотрен компактный корпус, гнездо для вилки и разъемы. Если заглянуть внутрь корпуса мы обнаружим как минимум два провода: нулевой и фазный. Я думаю, что ни для кого не секрет, что может случиться если вам захочется провести свой собственный эксперимент и попытаться соединить эти провода. Но если вы ничего не понимаете в работе электрических сил, то узнавать опытным путем, что такое короткое замыкание я не советую.
Если говорить подробно о коротком замыкании, то оно происходит в том случае, если в электрической сети возникает аварийная ситуация. Обычно такая ситуация происходит в результате неправильного подсоединения двух проводов цепи, что в дальнейшем нарушает нормальный режим ее работы. В конечном результате в местах соединения наблюдается критичный рост силы тока и достаточно сильное нагревание данного участка цепи. В результате этого происходит короткое замыкание, которое является одной из главных причин воспламенения электропроводки в доме, а бывает и сильного пожара.
Итак, давайте представим, что у вас в руках две электрические вилки соединённые между собой проводом. Многие из нас предположат, что если вставить одну из этих вилок в розетку, то вторая вилка сразу превратиться в достаточно опасное оружие. Поскольку ноль и фаза сразу появятся на другой стороне провода. Но, если все-таки попробовать вставить вторую вилку, например, в розетку которая находится на противоположной стороне, то теоретически нам следует ожидать:
- В первом варианте теоретически произойти ничего не должно. Поскольку фаза на штекере одной из вилок вполне вероятно совпадет с фазой на второй розетке. Проще говоря, в нашей сети появится лишь дополнительный провод, при этом мы изменим лишь конфигурацию, однако на направления тока это не повлияет, он останется прежним.
- Во втором варианте, как и ожидается сеть не будет работать в нормальном режиме, поскольку фазные и нулевые провода в подключаемых между собой розетках не совпадают. Это приведет к возникновению аварийной ситуации в сети или короткому замыканию. В итоге мы получим повышение температуры и воспламенение изоляции, что может привести к возникновению пожара.
- Третий самый интересный вариант, который может произойти только в доме с 3-фазным питанием 380 В. В данной случае нет безопасного варианта с подключением розеток, поскольку каждая питается от разноименных фаз. Поэтому при попытке подключения 2-х розеток друг к другу вас ожидает: межфазное замыкание 3-фазной цепи или два 1-фазных коротких замыкания.
Безопасное подключение
Несмотря на то, что идея с подключением розетки к розетке немного странная и даже в какой-то степени абсурдная, но в некоторых ситуациях такая идея может принести пользу. Нередко в процессе восстановления питания многие опытные электрики используют данную схему, которая, стоит отметить, является лишь временной мерой.
Данная схема с розетками позволяет электрику восстановить питание в комнате, в том случае если провод питания перебит. Одним из главных условий — в самой розетке нулевой и фазный провод должны быть в нерабочем состоянии, поскольку в противном случае, мы лишь получим дополнительную проблему в виде короткого замыкания.
Вывод
Категорически не рекомендуется пользоваться такой схемой людям, которые совершенно ничего не понимают в работе электрических сил. Вы должны понимать, что такое подключение без специальных знаний очень опасно. В случае возникновения пожара может пострадать не только ваше имущество, но и ваших соседей. Поэтому, категорически не рекомендуется проводить какие-либо эксперименты с электросетью.
Источник:
https://hi-tech.mail.ru
Новости
Публикации
Сегодня проведу тесты достаточно интересного зарядного устройства с дисплейным модулем от достаточно малоизвестного китайского бренда — Getihu.
Заявленные характеристики:…
Контроллер Silicon Motion SM2264 был анонсирован компанией еще в 2020 году, но
старт его оказался очень затянутым. Всякое бюджетное четырехканальное того же
года, типа SM2267 или даже
безбуферного…
Давно хотелось поднять проблему покупки чернил Pilot в наши дни. Sailor и прочие я не затрагиваю ибо фанат скорее одного японского бренда который мне по средствам и душе….
Электрический духовой шкаф давно воспринимается привычным элементом городской квартиры. Спрос, как известно, рождает соответствующее предложение. И в этом тексте наша команда расскажет о некоторых…
В этом обзоре я протестирую систему водяного охлаждения ALSEYE M240-PLUS-B II. Красивая RGB подсветка, встроенный дисплей, который отображает температуру процессора.
Технические…
Не
так давно южно-корейский институт провёл исследования по полезности блендеров,
их способности сохранять витамины и полезные вещества. Итогом исследования
стало то, что профессиональные…
Подключение розетки от розетки: за и против
Как бы нам ни хотелось всегда производить электромонтажные работы правильно и продуманно, иногда возникает острая необходимость в новой стационарной розетке, располагающейся довольно далеко от всех других. В таких ситуациях ничем не помогут тройники, а удлинители, хоть и будут эффективны, но станут постоянной помехой у нас под ногами. Выход из сложившейся ситуации только один: произвести монтаж новой отдельной розетки, которая будет идти не по выделенной линии от распределительной коробки, а от другой ближайшей розетки.
С точки зрения безопасности специалисты по электрике не одобряют подобные решения, однако признают, что, если подобное ответвление делается для какого-либо маломощного прибора, существенной опасности подобная схема не представляет. Наиболее распространён монтаж отводных розеток в подсобных помещениях и на кухне: здесь может понадобиться подключение электроподжига плитки или подсветки для духовки, отдельная розетка для питания радиоприёмника, точка включения светодиодной ленты. Как видим, подобные приборы не нагружают сеть настолько, чтобы пришлось бояться за сохранность проводки из-за перегрева.
Технические нюансы
Справедливости ради отметим, что говорить о большом наборе положительных и отрицательных сторон такого способа подключения не приходится. Преимущество здесь всего одно – появление розетки в том месте, где её раньше не было, но потребность в ней имеется. Все остальные плюсы можно считать сопряжёнными: отсутствие громоздких тройников, переносок и удлинителей, экономия кабеля и пр. Сюда же можно отнести сохранность контактов в ближайшей розетке, поскольку пользователям не придётся всё время подключать-отключать приборы – то есть, и гнёзда остаются целее, и сам электроузел не расшатывается в подрозетнике.
Если анализировать возможность такого способа монтажа розетки с сугубо технической стороны, то всегда следует начинать с параметров существующей электропроводки. Зачастую мастера используют кабель или провод с площадью сечения жил 1,5 или 2,5 кв. мм. Это стандартные для жилых помещений величины, которые без труда выдерживают нагрузку до 2 кВт. Если принять во внимание, что нестационарные бытовые электроприборы с подобным уровнем мощности можно пересчитать по пальцам, то опасаться нечего. Люди крайне редко одновременно включают мощные устройства в сдвоенные или сопряжённые друг с другом розетки прежде всего из-за большой разницы в назначении таких приборов. Среди современной техники, имеющей энергопотребление порядка 1,6-2 кВт можно выделить электрочайник, пылесос, утюг и обогреватель. Вероятность одновременной работы более двух из них в пределах одного помещения минимальна, а области применения не пересекаются. Тем не менее, любой прибор всё же лучше включать в розетки, которые имеют прямое подключение к магистрали, а не ответвляются от других электроточек.
Если даже обывателю довольно ясно, что уровень фактической опасности при рассматриваемом способе монтажа можно с натяжкой назвать лишь средним, то почему же пожарные службы так настаивают на некорректности таких действий? На самом деле, вопрос состоит не столько в перегрузке участков цепи, сколько в увеличивающемся количестве соединений. Каждая новая электроточка – это разрыв, а потому и место коммутации, которое выступает эпицентром нагрева и источником электроаварий при других неблагоприятных обстоятельствах. Если одна от другой подключены сразу несколько розеток, то подобная «гирлянда» концентрирует на себе максимально возможное количество негативных факторов. Даже в том случае, когда единственный мощный прибор включён лишь в последнюю розетку такой цепочки, перегрев соединений может случиться на любом месте контакта, если используются не качественные клеммники, а скрутка или неудачный зажим. При прохождении тока проводка подвергается постоянной микровибрации, что со временем приводит к ослаблению контактов. Побороть это явление полностью невозможно, поскольку оно заложено в самой природе тока, однако минимизация числа прямых соединений позволяет более эффективно контролировать качество подключения и при необходимости быстро производить ревизию.
Подводя промежуточные итоги можно смело сказать следующее: хотя официальным нормативам подключение одной электроточки через другую и не соответствует, в подавляющем большинстве случаев оно всё же не является аварийно опасным. Для жилых помещений подобный способ вполне подходит безотносительно других факторов, и только на кухнях с подобным нужно быть осторожнее. В современном мире именно здесь, а не в гостиной концентрируется максимальное число одновременно работающих приборов и устройств. Давайте кратко рассмотрим, что сопряжено с каждым из них.
- Холодильник потребляет очень мало энергии, однако является весьма дорогим и важным для повседневности бытовым прибором – то есть, его поломка из-за подключения розетки шлейфом внесёт немалый дискомфорт в домохозяйство. При этом работает прибор круглосуточно, одновременно с любыми другими устройствами в доме.
- Когда на кухне готовит хозяйка, постоянно используется плита – газовая с электроподжигом или полностью электрическая. Нередко вместе с ними также работает духовка любого типа, нуждающаяся в подсветке. Если устройство потребляет газ, то нагрузка вспомогательных систем на сеть будет почти нулевой, однако в случае электрической плитки часто требуется вообще отдельная линия. Она не должна пересекаться ни с другими бытовыми приборами, ни с кухонной люстрой, даже если последняя рассчитана всего на полтора десятка ватт.
- В процессе готовки важно хорошее освещение, что вынуждает хозяйку параллельно включать подсветку на вытяжке и LED-ленту над рабочими поверхностями. Сами по себе эти системы не очень сильно нагружают сеть, однако работая одновременно с другими, всё же увеличивают фактор риска. Особенно на этапе, когда возникает необходимость включить саму вытяжку и в помещении появляется систематическая вибрация.
- Пока одни блюда готовятся на плите, нередко параллельно что-нибудь может размораживаться в микроволновке, средняя мощность которой составляет 700 Вт. Это довольно существенно, если прибавить значение к энергопотреблению других систем. При других обстоятельствах ответвлённая розетка без труда бы выдержала подобную нагрузку, однако сейчас всё уже не так однозначно.
- Вспомогательные приборы, о влиянии которых хозяйки вообще почти не задумываются, чаще всего и становятся последней каплей в деле перегруза розеток, соединённых по цепочке. Сюда входят любые устройства с нагревательными элементами – небольшие по размерам и оттого не выглядящие опасными. Например, если одновременно со всеми вышеупомянутыми приборами включить ещё электрочайник с тостером, то вместо поедания вкусных поджаренных бутербродов человек скорее всего будет нюхать запах таких же поджаренных проводов, сидя в темноте. Подобное иногда случается даже при правильном подключении техники, просто от совокупного перегруза линии и несвоевременного срабатывания защитной автоматики, так что без крайней необходимости лучше не готовить все виды яств одновременно, а немного переждать и включать одну технику только после окончания цикла работы другой.
Как смонтировать ответвлённую розетку?
Общие принципы монтажа практически идентичны тем, которые актуальны для установки розеток и выключателей ещё на этапе капитального ремонта. Зачастую разница состоит лишь в том, что дополнительные электроточки, выполняющиеся много позже, предполагают накладной, а не встраиваемый монтаж. Прокладывать провод в толще стен будет довольно накладно и трудоёмко, так что жильцы обычно останавливаются на том, чтобы данный участок проводки оставался открытым. В редких случаях из-за нехватки места саму розетку утапливают в стену, подготавливая для неё соответствующее отверстие, а проводку оставляют снаружи. Выглядит последнее не очень эстетично, однако на такие жертвы приходится идти, если других вариантов попросту нет.
Перед покупкой отрезка кабеля для ответвлённой розетки вскройте «донорскую» розетку и запомните диаметр жил. К дочерней электроточке не должны идти более тонкие провода, иначе при включении в неё мощной техники вероятность скорейшего перегрева проводов и мест их соединения повышается многократно. Понижать сечение жил допустимо только в случае, если линия отводится не под розетку, а для подключения небольшого светодиодного светильника в кладовой или на балконе. В таких случаях мощность потребителя обычно не превышает 40 Вт, что приемлемо даже для проводников сечением 0,75 кв. мм, считающихся минимальными в быту.
Следующий фактор подбора – визуальный. Для одних людей крайне важно грамотное сочетание новой розетки с уже имеющейся в квартире электрофурнитурой, а для других достаточно, чтобы изделие обеспечивало необходимый функционал. Сугубо технические предпосылки сводятся к тому, чтобы применять изделия, которые рассчитаны на требуемый номинал. Зная мощность подключаемых устройств, можно заранее определить для себя, какой ток должна выдерживать электрофурнитура.
Для какой бы техники не устанавливалась дополнительная розетка, никогда не следует игнорировать количество жил в проводнике. Если в Вашем доме есть заземление и к родительской розетке оно подключено, дочернюю также следует коммутировать трёхжильным кабелем. В редких случаях, когда новая электроточка устанавливается исключительно для одного прибора, у которого на штепселе присутствует всего два контакта, данным правилом можно пренебречь.
Порой встречаются ситуации, когда ответвление розеток требуется только из-за необходимости увеличить количество доступных гнёзд, а не по причине нехватки длины шнуров у электроприборов. Кроме того, что тройники выглядят недостаточно эстетично, чтобы решить описанную проблему, порой их использование невозможно из-за нехватки места: розетка расположена за мебелью, которая стоит почти впритык к стене, и ничего габаритнее обычной вилки туда не поместить. В таких случаях проще всего увеличить число разъёмов, смонтировав блок розеток, объединённых под одной рамкой. Если у Вас было одно гнездо, а требуется два, можно просто приобрести спаренную модель розетки и установить её всё в том же подрозетнике. Такое действие не потребует ни ответвления, ни удлинения проводов, ни увеличения отверстия. Если же нужно более двух разъёмов, придётся немного повредить отделку и заготовить при помощи коронки требуемое количество посадочных мест под подрозетники.
В гипсокартонных перегородках есть шанс сделать новую розетку максимально эстетично, а порой даже технически правильно. Нужно сначала высверлить отверстие под подрозетник, а затем при помощи жёсткой проволоки попробовать добраться в простенке до одной из имеющихся розеток. При должных навыках это сделать вполне реально за 5-10 минут.
Более того, такие перегородки часто позволяют дотянуть кабель не только от одной розетки к другой, но и проложить его из ближайшей распределительной коробки. Делается это следующим образом: поскольку распредкоробки расположены прямо над розетками, можно без труда пропустить по уже имеющейся гофре сверху вниз ещё один кабель. Если первичный монтаж выполнялся по правилам, места в кабель-канале будет достаточно, а сила тяжести станет надёжным помощником, благодаря чему мастеру не пригодится даже проволока-кондуктор. Добравшись кабелем до уровня уже стоящей розетки, её подрозетник извлекается и к проволоке, протянутой из гнезда для будущей электроточки цепляется новая гофра. Аккуратно вытягивая их вместе со стороны новой электроточки, можно проложить полноценный канал, не вскрывая стены. Затем проволока опять загоняется в гофру, зацепляется за свободный конец провода и протягивается до нужного места. Это идеальный вариант, одновременно технологичный, предельно аккуратный и полностью отвечающий требованиям безопасности. Некоторые люди хотят упростить его, пытаясь продолжить трассу от монтажной коробки до новой розетки напрямую, поскольку это позволяет сэкономить несколько метров провода, однако на практике такой подход в несколько раз хуже. Во-первых, значительно усложняется сам процесс протяжки проволоки и гофры, поскольку угадать путь проволоки под углом гораздо труднее, чем по прямой, во-вторых, само расстояние в таком случае будет больше, чем между двумя отверстиями под подрозетники, а в-третьих, место заложения кабеля будет непредсказуемым, то есть начнёт противоречить принципам безопасного электромонтажа с соблюдением прямых углов между ключевыми точками.
TCP: могут ли два разных сокета совместно использовать порт?
Итак, что происходит, когда сервер прослушивает входящие соединения через TCP-порт? Например, предположим, что у вас есть веб-сервер на порту 80. Предположим, что ваш компьютер имеет общедоступный IP-адрес 24.14.181.229, а человек, который пытается подключиться к вам, имеет IP-адрес 10.1.2.3. Этот человек может подключиться к вам, открыв сокет TCP на 24.14.181.229:80. Достаточно просто.
Интуитивно (и ошибочно) большинство людей предполагают, что это выглядит примерно так: 9на самом деле это не то, что происходит, но это концептуальная модель, которую имеют в виду многие люди.
Это интуитивно понятно, потому что с точки зрения клиента он имеет IP-адрес и подключается к серверу по адресу IP:PORT. Раз клиент подключается к 80 порту, то и его порт тоже должен быть 80? Это разумная вещь, чтобы думать, но на самом деле не то, что происходит. Если бы это было так, мы могли бы обслуживать только одного пользователя на иностранный IP-адрес. Как только удаленный компьютер подключается, он перехватывает соединение с порта 80 на порт 80, и никто другой не может подключиться.
Необходимо понимать три вещи:
1.) На сервере процесс прослушивает порт . Как только он получает соединение, он передает его другому потоку. Связь никогда не перегружает прослушивающий порт.
2.) Соединения однозначно идентифицируются ОС по следующим пяти кортежам: (локальный IP-адрес, локальный порт, удаленный IP-адрес, удаленный порт, протокол). Если какой-либо элемент в кортеже отличается, то это полностью независимое соединение.
3.) Когда клиент подключается к серверу, он выбирает случайный, неиспользуемый старший исходный порт . Таким образом, один клиент может иметь до ~64 тыс. подключений к серверу для одного и того же порта назначения.
Итак, вот что действительно создается, когда клиент подключается к серверу:
Локальный компьютер | Удаленный компьютер | Роль -------------------------------------------------- --------- 0. 0.0.0:80 | <нет> | ПРОСЛУШИВАНИЕ 127.0.0.1:80 | 10.1.2.3:<случайный_порт> | УЧРЕДИЛ
Во-первых, воспользуемся netstat, чтобы посмотреть, что происходит на этом компьютере. Мы будем использовать порт 500 вместо 80 (потому что на 80-м порту происходит куча всего, так как это общий порт, но функционально это не имеет значения).
netstat -atnp | grep -i ":500"
Как и ожидалось, вывод пустой. Теперь запустим веб-сервер:
sudo python3 -m http.server 500
Теперь снова результат запуска netstat:
Proto Recv-Q Send-Q Local Address Foreign Address State TCP 0 0 0.0.0.0:500 0.0.0.0:* ПРОСЛУШАТЬ -
Итак, теперь есть один процесс, который активно прослушивает (состояние: LISTEN) порт 500. Локальный адрес — 0.0.0.0, что означает «прослушивание всех IP-адресов». Легко совершить ошибку — прослушивать только порт 127.0.0.1, который будет принимать соединения только с текущего компьютера. Так что это не соединение, это просто означает, что процесс запросил bind() для IP-порта, и этот процесс отвечает за обработку всех соединений с этим портом. Это намекает на ограничение, согласно которому на каждом компьютере может быть только один процесс, прослушивающий порт (есть способы обойти это с помощью мультиплексирования, но это гораздо более сложная тема). Если веб-сервер прослушивает порт 80, он не может использовать этот порт совместно с другими веб-серверами.
Теперь давайте подключим пользователя к нашей машине:
quicknet -m tcp -t localhost:500 -p Проверка полезной нагрузки.
Это простой сценарий (https://github.com/grokit/quickweb), который открывает TCP-сокет, отправляет полезную нагрузку (в данном случае «Проверка полезной нагрузки»), ждет несколько секунд и отключается. При повторном выполнении netstat во время этого отображается следующее:
Proto Recv-Q Send-Q Local Address Foreign Address State TCP 0 0 0.0.0.0:500 0.0.0.0:* ПРОСЛУШАТЬ - TCP 0 0 192.168.1.10:500 192.168.1.13:54240 УСТАНОВЛЕН -
Если вы подключитесь к другому клиенту и снова выполните netstat, вы увидите следующее:
Proto Recv-Q Send-Q Local Address Foreign Address State TCP 0 0 0. 0.0.0:500 0.0.0.0:* ПРОСЛУШАТЬ - TCP 0 0 192.168.1.10:500 192.168.1.13:26813 УСТАНОВЛЕНО -
… то есть клиент использовал для подключения другой случайный порт. Таким образом, никогда не бывает путаницы между IP-адресами.
Использование сокета в качестве подключенного сокета
Подключенный сокет — это тот, который имеет соединение с удаленной стороной. Когда клиентский сокет соединяется с прослушивающим сокетом сервера, результатом являются два подключенных сокета: клиентский сокет становится подключенным, а прослушивающий сервер создает новый подключенный сокет. Дополнительные сведения об установлении или прослушивании соединений через сокет см. в разделах Использование сокета в качестве сокета клиента и Использование сокета в качестве сокета сервера (прослушивания).
Важное примечание: Сокет только считает, что он в данный момент подключен; оно никогда не может знать наверняка. Одна сторона связи может понять, что она больше не подключена, в то время как другая сторона продолжает верить, что она подключена. Это называется «проблемой полуоткрытых» соединений и подробно рассматривается в разделе «Обнаружение полуоткрытых (разорванных) соединений».
Над подключенными сокетами выполняются две основные операции: чтение и запись. Подключенные сокеты также могут отключить или закрыть соединение; эти операции будут описаны более подробно в одной из будущих статей FAQ.
Письмо
Сокет может быть записан в любое время. Операция записи помещает байты в исходящий поток. При использовании асинхронных операций записи может быть запущено несколько операций записи, и байты будут помещены в исходящий поток в правильном порядке.
Важное примечание: Завершение операции записи , а не означает, что удаленная сторона получила данные.
Операция записи завершается, когда локальная ОС скопирует весь буфер записи, даже если эти байты еще не отправлены по сети. Начинающие программисты TCP часто отказываются от этого, потому что считают,0013 должен знать , если данные были получены удаленной стороной. Эта реакция называется «отправить тревогу» и будет рассмотрена в одной из следующих статей часто задаваемых вопросов.
Операции записи могут быть завершены не сразу. TCP позволяет одной стороне информировать другую о том, сколько у нее буферного пространства; поэтому, если удаленное приложение считывает байты медленно, буфер отправки сокета может заполниться, и сокет может не сразу отправить исходящие байты. На самом деле можно оказаться в тупиковой ситуации, если обе стороны отправляют много данных, но считывают мало. Это одна из причин, по которой опытные программисты сокетов почти всегда используют асинхронные операции записи вместо синхронных.
Операция записи может (немедленно) завершиться ошибкой; это наиболее распространенный способ обнаружения разорванных соединений. В случае сбоя операции записи приложение должно предположить, что соединение больше не является жизнеспособным; подробности см. в разделе Обработка ошибок.
Обнаружение ошибки
Возможно, операция записи завершится со сбоем. TCP имеет встроенный механизм повторных попыток, поэтому запись завершится ошибкой только в том случае, если будет совершенно уверено, что соединение больше не является жизнеспособным. В этой ситуации ОС не может сигнализировать приложению, поэтому она переводит сокет в состояние ошибки. Это приводит к сбою будущих операций сокета.
Большинство протоколов TCP включают в себя понятие «сообщения проверки активности», которое периодически записывается в сокет (по крайней мере, если в течение некоторого времени не было никакой другой активности сокета). Это позволяет приложению обнаруживать ошибки сокетов из «успешных» операций записи, которые позже завершились неудачно. Это также позволяет приложению обнаруживать потерянные соединения, предотвращая «проблему полуоткрытого соединения». Сообщения поддержки активности более подробно обсуждаются в разделе Обнаружение полуоткрытых (разорванных) соединений.
Чтение
Пока сокет подключен, ОС постоянно читает данные от имени приложения (если не отключен приемный буфер сокета). Входящие байты сохраняются в приемном буфере сокета и удерживаются там до тех пор, пока приложение не начнет операцию чтения. Одновременно можно запустить более одной асинхронной операции чтения, но это настоятельно не рекомендуется, поскольку операции могут выполняться не по порядку.
Когда приложение выполняет операцию чтения, оно запрашивает чтение N байт из сокета. ОС не будет ждать, пока прибудут все N байтов; скорее, он может завершить операцию чтения, когда у него есть хотя бы один байт для возврата приложению. Когда приложение запрашивает чтение N байтов, оно фактически получает как минимум один байт и не более N байтов. Это быстрее очищает буферы приема ОС и быстрее передает данные в приложение, но это также означает, что приложение должно иметь дело с «частичными приемами». Общие способы обработки этого описаны в разделе «Формирование сообщений».
Важно, чтобы приложение регулярно читало из соединения, чтобы предотвратить тупиковую ситуацию, описанную выше в разделе «Запись». По этой причине опытные программисты сокетов обычно имеют одну асинхронную операцию чтения , всегда выполняющуюся на подключенном сокете. Всякий раз, когда операция чтения завершается, запускается другая асинхронная операция чтения.
Еще одним преимуществом постоянного чтения является немедленное обнаружение некорректно работающих приложений. Большинство протоколов имеют определенные периоды времени, когда отправка данных удаленной стороной будет ошибкой. Если приложение не выполняет постоянное чтение, то любые данные, поступающие в это время, будут рассматриваться как данные, поступающие в более позднее время. Легче отлаживать плохо работающие приложения, если входящие данные считываются и регистрируются в момент их поступления в сокет.
Чтение нулевых байтов
Многие ориентированные на поток объекты (включая сокеты) сигнализируют об окончании потока, возвращая 0 байтов в ответ на операцию чтения. Это означает, что удаленная сторона соединения изящно закрыла соединение, и сокет должен быть закрыт.