# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
2 теста |
|||
В этой серии видеоуроков мы подробно разберём принципы работы клиент-серверных программ на основе сокетов и напишем небольшую демонстрационную программу. Рекомендую ознакомиться со статьёй: http://qaru.site/questions/12999/what-is-the-difference-between-a-port-and-a-socket Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 36 мин. [Показать отчёт] Научился: Клиент-серверное приложение это одно приложение выполняющее часть задач на сервере и часть задач на клиенте. На сервере создается сокет, что содержит в себе адресс и порт ждущий соединения от клиента. Клиент создает запрос куда включон адресс и порт на сервере, получает ответ и передает данные через этот поток. По адрессу находиться в сети сервер, по порту находится приложение на сервере предназначенное для работы с этим клиентом. |
|||||
2 | Простейший сервер |
2 теста |
|||
На этом уроке мы создадим простейший сервер, который будет принимать подключения от клиентов и проверим его работу из телнета и браузера.
Отчёт отправил: 24765. Anatoli Выполнено за 13 мин. [Показать отчёт] Научился: Приступили к написанию кода, реализовали соединение проверено в браузере и телнет клиенте. |
|||||
3 | Автоответчик |
1 тест |
|||
На этом слайде мы напишем сервер-автоответчик, который всем клиентам будет отправлять одно и тоже сообщение.
Отчёт отправил: 24765. Anatoli Выполнено за 31 мин. [Показать отчёт] Научился: Первые эксперименты с сокетами. |
|||||
4 | Правильный заголовок |
2 теста |
|||
На этом дополнительном слайде мы сформируем правильный HTTP-ответ, который будет выдавать наш сервер, чтобы даже привередливые браузеры смогли бы его отобразить. Отчёт отправил: 24765. Anatoli Выполнено за 55 мин. [Показать отчёт] Научился: Сформулировали для браузера правильный заголовок по протоколу http. |
|||||
5 | Как хорошо уметь читать! |
1 тест |
|||
На этом слайде мы создадим клиента, который сможет прочитать сообщение от сервера.
Отчёт отправил: 24765. Anatoli Выполнено за 25 мин. [Показать отчёт] Научился: Реализлвали клиента, принимающего от сервера сообщения. |
|||||
6 | Клиент-серверный диалог |
|
|||
На этом слайде мы обеспечим полноценное общение между клиентом и сервером через сокет
Отчёт отправил: 24765. Anatoli Выполнено за 28 мин. [Показать отчёт] Научился: Наладили общение между сервером и клиентом. Передавать символ конца строки требуется функциям на сервере и клиенте это условие конца сообщения. Браузер телнет клиент передают каждый в своей кодировке, потому такая разница в длине строк. |
|||||
7 | Экспериментальный сервачок |
1 тест |
|||
На этом уроке мы ещё раз построчно и подробно разберём написанные программы и поэкспериментируем с "медленным" сервером. Самостоятельное задание - написать клиент-серверную игру "Угадай число".
Отчёт отправил: 24765. Anatoli Выполнено за 5 час. 45 мин. [Показать отчёт] Научился: Реализовал игру угадай число через сокеты, с сервером все ок, но вот клиент после нажатия cnrl+c только отдает сообщение. Сложности: Так и не разобрался как отправить от клиеента сообщение серверу через сокет. Сообщения отправляется, но вот из консольи как передать еще не разобрался. |
|||||
8 | Техническое задание |
|
|||
Мы познакомились с принципом работы сокетов. Теперь самое время создать какую-нибудь простую клиент-серверную программку. На этом видео мы сформулируем техническое задание. Попробуйте самостоятельно написать программу по ТЗ. Отчёт отправил: 24765. Anatoli Выполнено за 2 час. 20 мин. [Показать отчёт] Научился: Реализовал калькулятор по сети, через сокет на компьютере, пока только прибавление! |
|||||
9 | Основной алгоритм |
|
|||
На этом слайде мы напишем два алгоритма в одной программе: для сервера и для клиента.
Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Реализовал еще раз калькулятор, уже код SOLIDнее. |
|||||
10 | Скелет телефона |
1 тест |
|||
На этом коротком слайде мы создадим метод calculate() и очень быстро набросаем скелет класса Phone, используя возможности кодогенерации Intellij Idea.
Отчёт отправил: 24765. Anatoli Выполнено за 20 мин. [Показать отчёт] Научился: Реализовал операции сложения вычитания умножения деления. |
|||||
11 | Универсальный сокет |
|
|||
На этом слайде мы создадим все методы универсального сокета в классе Phone. Протестируйте программу в разных режимах. Придумайте, какую ещё клиент-серверную программу можно написать. Отчёт отправил: 24765. Anatoli Выполнено за 26 мин. [Показать отчёт] Научился: Рефакторинг небольшой, все также как и на уроке почти все реализовал. |
|||||
12 | ФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Оставьте отзыв об этом миникурсе и отчитайтесь за самостоятельное задание.
Отчёт отправил: 24765. Anatoli Выполнено за 13 мин. [Показать отчёт] Научился: Пройден курс работа с сокетами на яве, курс интересен, примеры простые и увлекательные. Прошел курс с большим удовольствием. Видеообзор: 3DHvXdmbjFo |
|||||
13 |
![]() |
|
|||
На этом слайде мы поговорим о многопоточности, рассмотрим несколько примеров, кода имеет смысл разделять задачу на потоки, а когда нет. На следующих слайдах мы напишем простой многопоточный сокет для сервера на языке Java
Отчёт отправил: 24765. Anatoli Выполнено за 29 мин. [Показать отчёт] Научился: Пример с железной дорогой, пример большой аэропорт принимает на одной полосе несколько самолетов. |
|||||
14 | VIP. Два потока |
1 тест |
|||
На этом слайде мы создадим простейшую программу с двумя потоками.
Отчёт отправил: 24765. Anatoli Выполнено за 17 мин. [Показать отчёт] Научился: Реализовали приложение с двумя запущенными потоками. synchronized предназначен, чтобы виртуальная машина следила, чтобы к методу или области кода имел доступ, только один поток. |
|||||
15 | VIP. Синхрофазатрон |
|
|||
На этом слайде мы создадим коллизию и узнаем, как от неё избавиться.
Отчёт отправил: 24765. Anatoli Выполнено за 37 мин. [Показать отчёт] Научился: Эксперименты с оператором synchronized. Создали 5 потоков и все 5 потоков обращались к общей переменной, без оператора synchronized и с оператором synchronized, получается несколько потоков могут в разные моменты(присваивание и инкрементирование) менять общую переменную, что дает забавные результаты. Оператор volatile указывает виртуальной машине хранить значение этой переменной только в регистрах процессора. |
|||||
16 | VIP. Функциональное потокообразование |
2 теста |
|||
На этом коротком слайде мы узнаем, как создать поток через функциональное программирование.
Отчёт отправил: 24765. Anatoli Выполнено за 27 мин. [Показать отчёт] Научился: Сложно разобраться было в данном уроке без предварительного изучения этих лямбд, понял что на уроке это тоже создание аннонимного класса, только с новым синтаксисом, в моем скрине аннонимный класс А это по старому синтаксису 7 ява, а класс В по новому синтаксису 8 ява, получилось несколько строчек короче код, но привычка видеть код 7 версии как-то привычней и наглядней и надо ещё привыкать еще к этому нововедению. |
|||||
17 | VIP. Мультики на сервере |
1 тест |
|||
На этом слайде мы встроим многопоточность в клиент-серверную программу Socketor и продемонстрируем достигнутый эффект.
Отчёт отправил: 24765. Anatoli Выполнено за 1 час. 34 мин. [Показать отчёт] Научился: Реализовали сервер обрабатывающий клиентов в несколько потоков. Еще написал скрипт запускающий произвольное число клиентов, тестировал на 50 клиентах и процессор сразу разгоняет кулер. |
|||||
18 | VIP. Динамичная многопоточность |
|
|||
На этом заключительном видеоуроке мы познакомимся с другим способом создания многопоточного сервера. Если на предыдущем уроке у нас "крутилось" несколько копий одной программы, то теперь мы будем создавать новый поток при каждом подключении клиента. Сравните оба варианта и напишите в отчёте, какой подход вам больше понравился и почему. Отчёт отправил: 24765. Anatoli Выполнено за 47 мин. [Показать отчёт] Научился: Реализовали многопоточный сервер, создающий соединение для каждого клиента, воспользовались лямбдой, код отрефакторили, программа стала универсальней и изящней. |
|||||
Итого: 18 видеоуроков |
3 час. 22 мин. 15 тестов |
9 чел. | |||
Финалисты: Yefim, Chip, Иван Воронин, Tekashnik, Александр, vip, Айдар, Dmitry Sinitsin, Anatoli . |