Интерфейс сокетов | Курс "Компьютерные сети"
Вставка
- Опубліковано 25 бер 2016
- Интерфейс транспортного уровня стека TCP/IP "Сокеты". Лекции по курсу "Компьютерные сети" - goo.gl/0aIOuf
Страница курса - www.asozykin.ru/courses/networ...
Сокеты - это интерфейс для взаимодействия с транспортным уровнем. В отличие от протоколов транспортного уровня TCP и UDP, которые используются для связи между транспортными уровнями разных хостов, интерфейс сокетов используется для взаимодействия приложения с транспортным уровнем внутри одного компьютера.
Интерфейс сокетов был впервые предложен в Berkeley UNIX 4.2 BSD. Это файл специального вида, при записи данных в которой они передаются по сети.
Сокеты оказались удобным интерфейсом, поэтому различные варианты сокетов реализованы в разных операционных системах (в том числе в Windows и Linux) и языках программирования.
Операции сокетов:
socket - cоздание новыго сокета
bind - установка связи сокета с IP-адресом и портом
listen - объявление о желании принимать соединения
accept - прием запроса на установку соединения
сonnect - установка соединения
send - отправка данные по сети
receive - получение данные из сети
close - закрытие соединения
Рассматривается пример использования сокетов на Python.
Программист взаимодействует с транспортным уровнем через интерфейс сокетов, поэтому протоколы TCP и UDP скрыты от программиста. Следовательно, при изменении протоколов транспортного уровня программу менять не придется.
Сокеты в Python - docs.python.org/3/library/soc...
Лекция "Основы организации компьютерных сетей" - • Основы организации ком...
Лекция "Транспортный уровень" - • Транспортный уровень |...
Лекция "Протокол TCP" - • Протокол TCP | Курс "К...
Лекция "Протокол UDP" - • Протокол UDP | Курс "...
Практические занятия по курсу "Компьютерные сети" - goo.gl/YP3l83
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
goo.gl/kW93MA - Наука та технологія
Удивительно короткое и при этом супер понятное объяснение. У вас талант огромные штуки объяснять!!!!
Спасибо!
Андрей, вы мне так помогли! У меня через час экзамен, почти все ваши лекции смотрел, стал намного уверенным в своих знаниях. Спасибо вам большое, объясняете лучше чем все мои преподаватели вместе взятые!
+David Ghukasyan, спасибо за хороший отзыв! Удалось ли сдать экзамен?
Какой университет?
да, Андрей, сдал на отлично! Ереванский Государственный Университет, факультет Информатики и Прикладной Математики. Спасибо еще раз, жду новых ваших лекций!
I know Im pretty randomly asking but does anyone know of a good place to stream newly released tv shows online ?
@Dustin Jamal I use FlixZone. You can find it by googling =)
@Benjamin Ahmed Yea, I have been using flixzone for months myself :D
Смотрю весь курс, не устаю поражаться качеству донесения информации!
Спасибо!
Огромное Вам спасибо, Андрей. К сожалению, на ютубе очень мало людей, которые могут столь информативно дать большой объем знаний! Продолжайте в том же духе!
Обязательно буду продолжать!
Отличный материал !!! Лаконично, понятно и хорошо подаётся. Легко запоминается.
А то некоторые как усложнят, как закрутят, что даже имея знания, уже можно запутаться.
Благодарим Вас за проделанню работу !!!
Спасибо за приятный отзыв! Рад, что мой подход нравится!
Восхитительный курс! Вы очень просто и доходчиво объясняете сложные вещи, за что вам огромное человеческое спасибо. Прохожу курс обучения на образовательном портале, как раз сейчас нам читают компьютерные сети. Чтобы понимать, о чём вообще речь, параллельно смотрю ваш курс. По сравнению с путанными объяснениями нашего преподавателя - это просто сказочный восторг! А примеры на Python очень порадовали - учусь на программиста Python)
Спасибо за приятный отзыв!
Спасибо вам за полезный материал! Невероятно круто у вас получается объяснять все темы по компьютерным сетям! Браво!
ОГРОМНОЕ СПАСИБО, особенно был поражен тем, что Вы привели пример кода на Python.
Вроде бы Python сейчас один из самых популярных языков для сетевых приложений. Если, конечно, Web не брать.
Да, пример на питоне хорошо зашёл
Применительно ко всему циклу и даже каналу - просто отличная работа, объясняющая технологии простым языком. При этом упрощения делаются небольшими. Т.е. именно теория даётся отлично. Завидую, что автор может объяснить все простым языком!
Спасибо за приятный отзыв!
Огромное Вам спасибо! И ещё большЕе спасибо за то что ПОДРОБНО отвечаете на вопросы в комментариях!!!
Пожалуйста! Всегда рад вопросам.
Andrey Sozykin , большое Вам спасибо за данный курс.
Самый низкий поклон.
+Alex Tokarev, пожалуйста! Рад, что оказалось полезно!
@@AndreySozykin А можно вам задонатить куда нибудь? Очень круто объясняете
Отличная работа! Спасибо)
+Дмитрий Ларионов, рад, что нравится!
Превосходное объяснение, как и всегда! Огромное спасибо!
Пожалуйста!
Большое вам спасибо! Много раз читала man-страницы и прочие источники, но благодаря вашему видео всё стало понятно на лету.
Андрей, огромное спасибо за Вашу работу! Изучал по Вашим урокам компьютерные сети, прошёл собеседование!!!
Офигенное обьяснение!
Спасибо!
Спасибо, вы очень хороший преподаватель, информация изложена понятно и последовательно
Спасибо большое за видео!Очень четко и понятно объяснили! Прохожу курс по сетевым технологиям и мне очень помогло Ваше видео в понимании материала! Однозначно лайк и подписка!
Спасибо, Андрей
Пожалуйста!
Спасибо большое, хорошее объяснение, а то везде непонятно
Пожалуйста!
Спасибо.
Qilgan bu yaxshi amallariyezni ajrini bersin.
Великолепный курс, огромное спасибо!
Пожалуйста!
Отличные видео, очень информативные, и чем дальше, тем интереснее, смотрю с самого начала на одном дыхании, многое уже знал, но многое было и новой информацией, но все равно очень полезно и интересно!
Благодарю за проделанную работу, за видео и презентации! Успехов! :)
Спасибо за приятный отзыв! Рад, что курс полезен и формат нравится!
Классная лекция. Спасибо!
Пожалуйста!
Спасибо вам, Андрей!
Пожалуйста!
Умница! Честь и похвала! Все точки расставил над и))
Рад, что оказалось полезным!
Спс за урок. Все подробно разобрал и объяснил
Пожалуйста!
Спасибо за видео!
Большое спасибо!
коротко и ясно. спасибо!
Пожалуйста! Рад, что понравилось!
Очень интересно! На С++ синтаксис плюс минус аналогичный. Отличные лекции!
Синтаксис похож, потому что операции с сокетами придумали не зависимо от языка программирования.
Молодчина!Спасибо.
Пожалуйста!
Спасибо, очень доходчиво
Пожалуйста!
спасибо за очередную хорошо разжеванную тему
с твоего позволения хочу лишь внести пару корректив для полноты картины
1) connect - устанавливает соединение лишь в случае работы с TCP, но не UDP.
В случае использования UDP сокетов (SOCK_DGRAM) этот вызов лишь сохраняет информацию удаленного адреса сервера и порта для отправки сообщений и их получений. То есть этот вызов можно и не использовать, но в этом случае придется использовать другие API для работы с сокетами, которые подразумевают ЯВНОЕ указание информации о сервере (sendto / recvfrom)
2) важное API для работы с TCP протоколом, которое подразумевает отправку fin флага или другими словами "одностороннее закрытие соединения" - shutdown
уж не знаю, есть ли оно в python, но среди стандартных posix API оно должно пристуствовать и иногда полезно
+conquistador, спасибо, все написано правильно.
Я об этом не говорю, чтобы не перегружать техническими деталями.
Спасибо за инфо!
Спасибо Вам!
Пожалуйста!
класс, отличный материал
Спасибо!
класс, спасибо
клас, спосибо! профессиональное
Спасибо
Очень познавательно
Спасибо!
spasibo za klasnoe video
Пожалуйста!
Несколько раз пересмотрел лекцию, вроде в целом понял о чем речь, но все же до конца не усваивается информация. Возможно потому, что я не имею представления о программировании. Мне показалось, что лекция скорее нацелена на тех, кто понимает программирование, но не силен в устройстве сети.
Но благодаря этой лекции появилось желание и в программировании разобраться.
В интернете много ресурсов, обучающих компьютерным сетям, но, как и многие на этом канале, я считаю, что Ваш курс лучший (по крайней мере из тех, с которыми я сталкивался) по доступности изложения для уровня новичок и по лаконичности.
Был бы рад, еслибы Вы выложили подобный курс по программированию с нуля. Думаю, достаточно многим людям это было бы интересно и многие были бы Вам благодарны.
Да, интерфейс - это скорее для программирования.
Кажется, что базовых курсов по программированию сейчас достаточно много хороших.
Чётко. Лайк, подписка
Спасибо!
шикарно!
Спасибо!
Спасибо!
Пожалуйста!
Топ видос. Я как раз на пайтоне сокеты изучаю
👍
Андрей, я не совсем понял что такое сокет.
Олифер трактует определение сокет как ip-adress + port
как очередь из данных, идущих на определенный адрес и конкретный порт
+TheSuperStepan можно понимать и так, как трактует Олифер. Для Интернет сокета это правильно.
Вообще сокет - это такая штука, которая объединяет два процесса. Один процесс туда что-то записывает, другой читает.
Первоначально сокеты в Unix использовались для взаимодействия процессов на одном компьютере. Процессы, даже если они на одном компьютере, изолированы друг от друга, поэтому для передачи данных им нужны сторонние механизмы (inter-process communication). Сокеты - один из механизмов обмена данными между процессами с помощью файлового дескриптора: один процесс пишет в файл специального вида, а другой читает. Это сокеты протокола Unix.
С появлением сетей TCP/IP оказалось что абстракция сокетов хорошо подходит не только для взаимодействия процессов на одном компьютере, но и по сети. Процессы по прежнему пишут данные в файл и читают из него, но данные передаются по сети. Собственно передача данных выполняется операционной системой и скрыта от программиста. Такие сокеты называют Интернет сокетами. Определяются они не именем файла, как Unix сокеты, а парами IP-адрес и порт для клиента и сервера.
Впервые встретил объяснение которое я понял. Спасибо вам огромное. По сетям у вас очень классный курс! Насколько я понял, многие пытаются преподавать материал, сами не понимая сути...и это вносит такую путаницу....
+Liocha Makedonsky, спасибо за хороший отзыв! Рад, что оказалось понятно :)
спасибо!!!
Пожалуйста!
А копия сокета получаетя имеет другой порт? И непонятно зачем нужен accept, если сервер и так уже слушает, непонятно тогда что он случает до accept
*Л. а. й. к. о. с.* за видос.
Спасибо!
Еще бы видео про WebSocket'ы.
Сейчас готовлю материалы. Будет на этой или следующей неделе.
Assalomu alaykum, rahmat sizga
Спасибо!
Здравствуйте Андрей. Извините что не по теме, вопрос такой где можно зарабатывать специалисту с этими знаниями, учусь на кафедре сетей связи 4 курс
Скажите, а можно забиндить клиентский сокет на левый ip?
добрый день. Спасибо за курс, у меня вопрос по видео - из примера в видео, отправляем данные серверу "hello world", почему клиент их получает обратно? вроде клиент должен получить потверждение? если сервер обратно отправляет пакет - получаются накладные расходы?
Это просто демонстрационный пример. Сервер отправил клиенту ту же самую строку, поэтому клиент ее и получил. В реальности сервер, конечно же, отправит что-то полезное клиенту.
Не нужно путать сокеты и TCP. Подтверждение отправляется по протоколу TCP.
Сокеты позволяют передавать процессам на разных хостах данные друг другу. В примере пересылаются простые строки. Причем для передачи используется TCP, и подтверждение о доставке тоже пересылается. Но все это скрыто от программиста.
Ожидал увидеть тут подобный коммент. Сам не сразу понял, зачем одни и те же данные возвращать клиенту.
В надежде на то, что мой коммент будет полезным для развития курса, отмечу, что в подобных примерах, кмк, было бы лучше добавить какую-то не совсем связанную с темой урока операцию с полученными данными, чтобы наглядно показать сразу две вещи:
1. Есть смысл в том, чтобы получать от клиента данные и возвращать ему что-то взамен. (Например, отправил клиент "2+2", а сервер ему - "4").
2. Сокеты, интерфейс транспортного уровня, ну прям _реально_ используются в _программе_ . Мол, вот то место, где эти ваши пока очень теоретические в этом курсе компьютерные сети вполне практически пересекаются с программированием. Вот здесь вы вызываете сокеты, вот тут - вычисляете "2 + 2", а вот здесь - шлете ответ обратно клиенту. Сами вычисления на Питоне не относятся к теме, но это было бы очень наглядно.
И в целом я заметил, что мне как человеку, который лучше всего понимает материал на практических примерах, иногда сложно понять какой-то нюанс сетей, потому что он представлен только в теории и весьма упрощенной. Хотя с упрощением я согласен, ибо понимаю, что оно тут реально необходимо, прошу обратить внимание на это и, если вы найдете места, которые можно объяснить на практических примерах без ненужного новичкам усложнения, уделить этим местам больше "практического" времени. Вот как в этом видео про сокеты. Прям вообще чистенько на мое сознанеие положилось из-за практического примера, очень ясно теперь все вижу.
4:45 копия сокета на сервере имеет другой порт, не 80ый(так утверждает один эксперт в одном споре)?
Если я правильно помню, сервер отличает клиентов по соурс порт, но как и кем он назначается, рандомно? Ос клиента?
Если отличие идет по соурс порт, то смысла подменять порт на сервере нет вроде бы
Андрей, здравствуйте! Извините, что не по теме.
Вы не могли бы сказать о чем идет речь в этом предложении?
"The TCP stack also maintains the variance in the measured RTT, the RTTVAR"
И вообще зачем нужен RTTVAR?
+Alexander Polyakov, это больше по теме протокола TCP - ua-cam.com/video/hd6QNXK5rPk/v-deo.html
TCP использует подтверждение доставки для того чтобы убедится, что данные переданы успешно. Если через заданный период времени подтверждение получения данных не пришло, то сегмент отправляется повторно.
Сложный вопрос заключается в том, как правильно выбрать время ожидания подтверждения (обозначается RTO, retransmission timeout). Если RTO будет слишком коротким, то подтверждения часто будут приходить после того, как таймаут закончится. То есть будет много излишних повторных оправок сегментов. С другой стороны, если RTO слишком большой, то обнаруживать проблемы доставки мы будем поздно.
TCP динамически вычисляет размер RTO в зависимости от времени прохождения сегмента от отправителя до получателя и обратно (RTT, round-trip time). RTO должен быть немого больше, чем RTT, тогда подтверждения будут приходить вовремя. Но в реальных сетях RTT для разных сегментов TCP может сильно отличатся друг от друга. Поэтому используется схема "сглаживания" RTT, на основе удаления выбросов и последующего усреднения. Для того вычисляются два дополнительных параметра:
SRTT - smoothed round-trip time, "сглаженное" RTT.
RTTVAR - round-trip time variation, характеризует, насколько значения RTT для разных сегментов TCP могут отличатся друг от друга.
Процесс вычисления RTO в TCP описан в документе RFC 6298:
1. Пока RTT не известно, задается
RTO
Воу, вот это объяснение!
то есть сокеты нужны,чтобы программист мог настраивать сервер?
спс
С П А С И Б О !
Пожалуйста!
Андрей здравствуйте. Вы сказали что интерфейсы используются для взаимодействия между разными уровнями стека протоколов. Я правильно понял, что интерфейс сокетов используется для взаимодействия уровня приложений с транспортным уровнем?
Да, именно так.
@@AndreySozykin Ок. Спасибо!
Здравствуйте Андрей. Спасибо за лекцию, как всегда всё прекрасно. У меня небольшой вопрос, 1 сокет - сугубо для одного порта? Т.е., если допустим на компьютере условно происходит передача и прием данных по двум портам - 45 и 4500 допустим, то на компе будет открыто 2 сокета для каждого из портов?
+rostl, да, именно так.
Я правильно понимаю, что два сокета на один айпишник, но разные порты будут занимать два места в очереди на стороне сервера?
@@user-gd6il5zb8l нет, очередь из соединений создаеться для кажного сокета отдельно, соответственно будет 2 очереди
@@ruslanvolovik2745
а как, собственно, работает эта очередь соединений?
скажите, это конечно немного не по теме, ну как допустим программист системный на с, взаимодействует с транспортным уровнем. Я читал, что любое взаимодействие например с клавой происходит через поток что записывается в файл, то есть тут также, только файл - сокет?
+Vlad Stetsenko, да именно так. Сокет (в Unix) - это тип специальный файла. Интерфейс сокетов придуман был именно для программ на C, там такие же вызовы: bind, listen и т.п.
Андрей, а не планируете более подробные видосы про poll, select, epoll и Linux aio? Спасибо!
Пока не планировал. Сейчас делаю новый курс по SQL. Потом, возможно, на эту тему подумаю.
Андрей, вы делаете отличные лекции! Спасибо большое. Можно уточнить, я так пониманию, сокеты стали нужны, чтобы множество пользователей могло работать с одним сервером. Ведь связка IP-адрес и порт (192.168.1.1:80), если пользователей, скажем, 100 и они постоянно обмениваются информацией с сервером, качают что-нибудь с него, очень "сыроватое" решение. В любом случае, нужно было решение вроде сокетов "порт для порта". Интернет-сокет - это специальный "адрес" конкретного соеднинения + буфер для обмена данными? я правильно понял его предназначение?
Да, именно так. Сокеты сделали как раз для того, чтобы скрыть взаимодействие по сети. Изначально сокет - это файл специального типа в UNIX. Данные пишутся в этот файл, а читать их можно на другом компьютере. Такая абстракция сетевого ввода-вывода.
Связка IP и порт необходима, иначе непонятно, куда клиенту подключаться.
@@AndreySozykin а каким образом происходит привязка к этому "файлу"? у этого файл есть какой то ID? я просто сейчас усиленно изучаю эту тему, а подробного разбора как устроены сокеты не могу найти. То что вы описали - самое подробное что я нашел в сети.
В википедии есть описание типа файла для сокетов - en.m.wikipedia.org/wiki/Unix_file_types
Еще ссылка с более подробной информацией - unix.stackexchange.com/questions/116563/is-there-a-file-for-each-socket
@@Valaukar1111 это ты так "усиленно занимаешся", видно...
Андрей, а вот такой вопрос. Допустим я пишу чат и хочу напрямую устанавливать соединение через интернет между двумя собеседниками, один из них сервер, другой клиент. Как клиенту узнать IP-адрес сервера?
Нужен какой-то дополнительный сервис, который будет сводить вместе клиентов и серверы. Подобным образом устроен BitTorrent. Есть torrent трекер, который сам не хранит даннные, но знает, у кого что лежит.
Зачем серверному сокету указывать адрес? ОС имеет сетевой интерфейс, интерфейс обладает адресом, на этот адрес маршрутизатор передаст пакет, ОС отправит пакет на определенный порт. В чем я не прав?
Здравствуйте! Андрей. Огромное спасибо, очень познавательный материал.
Но дойдя до этой темы, я впал ступор, не могу понять что такое Сокеты.
Возможно, что-то усложняю для себя в этом вопросе, поэтому не могу понять.
Есть возможность объяснить как то иначе, что такое Сокет?
+Эмиль Сенцов, сокеты - это набор функций (или методов) для разработки программ для сетей. Если вы хотите что-то передать по сети из программы, то используете сокеты.
Разве закрытие соединения TCP не инициируется методом socket.shutdown(socket.SHUT_RDWR), а socket.close() просто освобождает ресурсы?
docs.python.org/3/library/socket.html?highlight=socket#socket.socket.close
Не совсем так. socket.close() также закрывает соединение, если сокетом пользовался только один процесс. Если же через сокет работали несколько процессов, то соединение не разорвется и другие процессы смогут передавать данные.
socket.shutdown(socket.SHUT_RDWR) закрывает соединение, не зависимо от того, сколько процессов используют сокет. Подробности можно посмотреть по ссыдке - stackoverflow.com/questions/409783/socket-shutdown-vs-socket-close
Но эта тема выходит за рамки вводного курса по сетям.
Андрей, а что же тогда порт, это тоже какой-то пронумерованный файл или структура в памяти? Ну или ссылку на вашу лекцию про порты.
Порт - это идентификатор процесса на транспортном уровне. Про порты в лекции о траеспортном уровне - ua-cam.com/video/g7vq-JVId58/v-deo.html
@@AndreySozykin Merci
Я хотел бы спросить, мне бы как то прочесть заголовок ip в сокетах, я могу это реализовать в сырых сокетах но это ооочень долго и сложно, нужно будет реализовать весь механизм Tcp в ручну просто чтобы прочесть ip заголовок. Так вопрос, как?
При сотворении копии сокета, нуно было сказать, что ему присваивается другой номер порта, выбираемой за диапазоном 1024
а как в таком случае ведет себя очередь для соединений? она одна на сервер? или при клонировании сокета клонируется и очередь - но тогда в чем ее смысл, если на каждый клон сокета будет очередь для соединений и при том всегда с одним соединением?
Благодарствую за разъяснения. Тогда скажите как называется IP адрес в паре с портом приложения?Путаница возникла, Википедия трактует Сокет как IP адрес в паре с портом приложения.
Упрощенно можно понимать и так. Сокет - это файл специального вида, который связан с IP-адресов и портом на текущем компьютере, а также с IP-адресом и портом на удаленном компьютере (вместе с протоколом транспортного уровня TCP или UDP мы получаем полное описание соединения). Все, что пишется в этот файл, появляется на другом компьютере.
Строго говоря, сокеты бывают не только TCP/IP, но и других типов, например, Unix. Там передача данных выполняется без IP-адресов и портов. Но сейчас почти везде используются сокеты TCP/IP, так что в Википедии описан самый популярный вариант сокетов.
Теперь понятно. Очень вразумительно.
Тоесть первый сокет у нас принимает соединение и устанавливает его, а копию мы делаем, чтобы первый сокет всегда принимал новых клиентов?
После чего новый клиент на 1ом сокете снова сделает копию и уйдет в нее, а первый сокет снова освободиться для принятия нового клиента?
Получается, что сокеты взаимодействуют и с сетевым уровнем? Ведь иначе бы они не привязывались к IP-адресу
+Sergey Ufimtsev, не совсем так. Сокеты используются для передачи данных от одного приложения другому.
Но чтобы знать, где находится другое приложение, нужны обязательно IP-адрес и порт. В этом смысле изоляция не полная. Однако большая часть задач сетевого уровня (маршрутизация и т.п.) от сокетов скрыты.
@@AndreySozykin
6:19
"conn, addr=s.accept()" что означает эта строка? что за "addr", если дальше эта переменная не используется?
Я иногдп думаю, что те, кто поставил видосам Андрея дизлайк, просто неуверенной рукой/в темноте/спросонья (нужное подчеркнуть) двумя сантиметрами в выборе кнопки ошиблись.
Не обязательно всем должно нравиться. Кроме того, без дизлайков youtub будет подозревать накрутки.
@@AndreySozykin я просто по Вашим лекциям на собеседование готовилась. И в полном восторге от того, как Вы так все четко и структурированно обьясняете.
Очередь соединений == размер окна ?
+D0sart, нет. Размер окна свой для каждого соединения. Очередь нужно для разных соединений. Если запросов на соединение приходит очень много и сервер не успевает их обрабатывать, они устанавливаются в очередь.
Лучше использовать read вместо receive.
Ах тыж сукин сын я в деле, с меня тоже лайк
Спасибо!
Когда создается копия сокета, то какой ip ей присваивается?
Тот же самый, что и у основного сокета.
Andrey Sozykin а как сеть воспринимает 2 одинаковых ip?
Это же на транспортном уровне. Там соединения различаются по 5 параметерам:
- IP отправителя
- Порт отправителя
- IP получателя
- Порт получателя
- Протокол транспортного уровня (TCP или UDP).
@@AndreySozykin
4:24
критикую:)
вот в этом моменте вообще ничего не понятно. у другого сокета есть ip адресс и порт? какие? как происходит соединение клиента с другим сокетом? клиент же связан с исходной парой айпи адрес-порт сервера, а тут клиента коннектят на какой-то другой сокет. и кто это делает? ОС сервера? очередь соединений - как конкретно она работает? особенно в свете копирования сокета. очередь копируется или как? ни слова про это.
столько вопросов и нет ответов:)
Разве системный программист не может работать с IP пакетами?
Запили видосик по стриму, как сделать стрим по типу fm.
Не понял вопрос :-(
Andrey Sozykin как работает стрим в интернет радио к примеру. Какие процессы происходят при этом.
Понятно. Интересная тема, спасибо! Подумаю, как это можно сделать.
Plus
сокеты у прогеров и технарей совсем разные вещи)
в чем именно разница?
тебе вопрос задали!!! отвечай!:)
Bind читается как "байнд"!
Как бы ещё и Питон выучить?!?
Есть отличный сайт - pythontutor.ru
у Сергея Лебедева неплохой курс про особенности питона
курс для программистов, т.е. его слушатели уже программируют на других языках
на курсы на степике есть) для начинающих самое то
вообще не понял что такое сокет
Я не знал, что Гнойный видео по программированию снимает и да лучше убери свое лицо с видео отвлекает
Не понял, при чем тут Гнойный :-)
@@AndreySozykin Я не могу понять следующее: метод accept принимает соединение, но он это делает при любых обстоятельствах. Можно ли как-то глянуть кто просится подключится и если узел нам не угоден(например айпи не нравтся), то отклонить соединение?
Вот вы говорите что транспортный, это первый с которым может взаимодействовать программист. А я думал что вот то подробное описание алгоритмов разных протоколов озвучивается затем чтобы программист, при желании понимал как ему писать алгоритм, если надо на своём устройстве это реализовать, без роутер ОС или других ОС. Теперь не понимаю зачем, кроме общих знаний, знать алгоритмы взаимодействия разных протоколов нижних уровней.
Скорее всего, незачем 🙂
В любом случае полезно понимать, что за параметры вводятся при настройке сетевой конфигурации компьютеров. Еще иногда бывает полезно уметь настраивать маршруты к определенным сетям, как на серверах, так и на обычных компьютерах.
@@AndreySozykin понял, админские цели значит. Это тоже очень хорошо.
Какраз читаю книгу Stivens_UNIX_Razrabotka_setevykh_prilozheniy там такой подход используется тоже , я вам признателен за видео )
Спасибо!
Пожалуйста!
Спасибо
Спасибо
Пожалуйста!