# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
2 теста |
|||
В этой серии видеоуроков мы подробно разберём принципы работы клиент-серверных программ на основе сокетов и напишем небольшую демонстрационную программу. Рекомендую ознакомиться со статьёй: http://qaru.site/questions/12999/what-is-the-difference-between-a-port-and-a-socket Отчёт отправил: 3922. Александр Выполнено за 24 мин. [Показать отчёт] Научился: Сокет - программный интерфейс обмена данными между процессами. Он определяется двумя значениями IP-адрес + порт. |
|||||
2 | Простейший сервер |
2 теста |
|||
На этом уроке мы создадим простейший сервер, который будет принимать подключения от клиентов и проверим его работу из телнета и браузера.
Отчёт отправил: 3922. Александр Выполнено за 7 мин. [Показать отчёт] Научился: Написал на Java самый простой сервер, который только может быть! Сложности: Оказалось, что в Windows 10 telnet по умолчанию отключен из соображений безопасности. Пришлось залезть в настройки, что бы его активировать (см.картинку) |
|||||
3 | Автоответчик |
1 тест |
|||
На этом слайде мы напишем сервер-автоответчик, который всем клиентам будет отправлять одно и тоже сообщение.
Отчёт отправил: 3922. Александр Выполнено за 39 мин. [Показать отчёт] Научился: Написал сервер-автоответчик Сложности: В консоли видно, что сервер реагирует на подключение, но браузер выдаёт сообщение "Сайт 127.0.0.1 отправил недействительный ответ. ERR_INVALID_HTTP_RESPONSE". Видимо, не все браузеры могут отображать данные в таком формате. |
|||||
4 | Правильный заголовок |
2 теста |
|||
На этом дополнительном слайде мы сформируем правильный HTTP-ответ, который будет выдавать наш сервер, чтобы даже привередливые браузеры смогли бы его отобразить. Отчёт отправил: 3922. Александр Выполнено за 19 мин. [Показать отчёт] Научился: Добавил заголовок, проверил работу через telnet и в браузере. |
|||||
5 | Как хорошо уметь читать! |
1 тест |
|||
На этом слайде мы создадим клиента, который сможет прочитать сообщение от сервера.
Отчёт отправил: 3922. Александр Выполнено за 30 мин. [Показать отчёт] Научился: Создал клиента, который может прочитать сообщение от сервера. |
|||||
6 | Клиент-серверный диалог |
|
|||
На этом слайде мы обеспечим полноценное общение между клиентом и сервером через сокет
Отчёт отправил: 3922. Александр Выполнено за 43 мин. [Показать отчёт] Научился: Организовал полноценное общение между клиентом и сервером через сокет. При отправке запроса из браузера, сервер получает не такой запрос, как от нашего клиента, поэтому вычисленная длина имеет другое значение. |
|||||
7 | Экспериментальный сервачок |
1 тест |
|||
На этом уроке мы ещё раз построчно и подробно разберём написанные программы и поэкспериментируем с "медленным" сервером. Самостоятельное задание - написать клиент-серверную игру "Угадай число".
Отчёт отправил: 3922. Александр Выполнено за 15 мин. [Показать отчёт] Научился: Немного поэкспериментировали. |
|||||
8 | Техническое задание |
|
|||
Мы познакомились с принципом работы сокетов. Теперь самое время создать какую-нибудь простую клиент-серверную программку. На этом видео мы сформулируем техническое задание. Попробуйте самостоятельно написать программу по ТЗ. Отчёт отправил: 3922. Александр Выполнено за 12 мин. [Показать отчёт] Научился: Это просто техническое задание |
|||||
9 | Основной алгоритм |
|
|||
На этом слайде мы напишем два алгоритма в одной программе: для сервера и для клиента.
Отчёт отправил: 3922. Александр Выполнено за 38 мин. [Показать отчёт] Научился: Написал алгоритм запуска в режиме клиента или сервера, в зависимости от аргументов. Сложности: Так уж и быть, установил 11-ю java :) |
|||||
10 | Скелет телефона |
1 тест |
|||
На этом коротком слайде мы создадим метод calculate() и очень быстро набросаем скелет класса Phone, используя возможности кодогенерации Intellij Idea.
Отчёт отправил: 3922. Александр Выполнено за 9 мин. [Показать отчёт] Научился: Продолжил написание программы, реализовал метод calculate() |
|||||
11 | Универсальный сокет |
|
|||
На этом слайде мы создадим все методы универсального сокета в классе Phone. Протестируйте программу в разных режимах. Придумайте, какую ещё клиент-серверную программу можно написать. Отчёт отправил: 3922. Александр Выполнено за 1 час. 11 мин. [Показать отчёт] Научился: Реализовал методы класса Phone и проверил работу клиента и сервера в консоли, в т.ч. с подключением через telnet Сложности: Пришлось удалить jre от 8-й Java, что бы он не мешал запускать в консоли код, скомпилированный Java 11 версии |
|||||
12 | ФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Оставьте отзыв об этом миникурсе и отчитайтесь за самостоятельное задание.
Отчёт отправил: 3922. Александр Выполнено за 2 мин. [Показать отчёт] Научился: Уже изучал ранее сокеты, всё-равно было интересно. Курс классный, рекомендую его всем для прохождения! Сложности: Заплатил за этот отзыв 50 байт. Идём дальше! |
|||||
13 |
![]() |
|
|||
На этом слайде мы поговорим о многопоточности, рассмотрим несколько примеров, кода имеет смысл разделять задачу на потоки, а когда нет. На следующих слайдах мы напишем простой многопоточный сокет для сервера на языке Java
Отчёт отправил: 3922. Александр Выполнено за 25 мин. [Показать отчёт] Научился: Распараллеливать имеет смысл выполнение большого количества небольших однотипных задач. В качестве примера эффективной многопоточности можно привести большое количество кассовых узлов в супермаркете или турникеты на входе в метро. Последовательности задач можно оптимизировать, подготовку студента к экзамену или подготовку спортсмена к участию в соревновании. |
|||||
14 | VIP. Два потока |
1 тест |
|||
На этом слайде мы создадим простейшую программу с двумя потоками.
Отчёт отправил: 3922. Александр Выполнено за 24 мин. [Показать отчёт] Научился: Повторил самые основы многопоточности. |
|||||
15 | VIP. Синхрофазатрон |
|
|||
На этом слайде мы создадим коллизию и узнаем, как от неё избавиться.
Отчёт отправил: 3922. Александр Выполнено за 39 мин. [Показать отчёт] Научился: Поэкспериментировали с synchronized |
|||||
16 | VIP. Функциональное потокообразование |
2 теста |
|||
На этом коротком слайде мы узнаем, как создать поток через функциональное программирование.
Отчёт отправил: 3922. Александр Выполнено за 13 мин. [Показать отчёт] Научился: Написание кода в функциональном стиле. |
|||||
17 | VIP. Мультики на сервере |
1 тест |
|||
На этом слайде мы встроим многопоточность в клиент-серверную программу Socketor и продемонстрируем достигнутый эффект.
Отчёт отправил: 3922. Александр Выполнено за 1 час. 52 мин. [Показать отчёт] Научился: Сделал сервер многопоточным и провёл эксперименты по наблюдению за скоростью ответа сервера. |
|||||
18 | VIP. Динамичная многопоточность |
|
|||
На этом заключительном видеоуроке мы познакомимся с другим способом создания многопоточного сервера. Если на предыдущем уроке у нас "крутилось" несколько копий одной программы, то теперь мы будем создавать новый поток при каждом подключении клиента. Сравните оба варианта и напишите в отчёте, какой подход вам больше понравился и почему. Отчёт отправил: 3922. Александр Выполнено за 49 мин. [Показать отчёт] Научился: Сделал динамическое формирование потоков при каждом подключении |
|||||
Итого: 18 видеоуроков |
3 час. 22 мин. 15 тестов |
9 чел. | |||
Финалисты: Yefim, Chip, Иван Воронин, Tekashnik, Александр, vip, Айдар, Dmitry Sinitsin, Anatoli . |