Як дані передаються в мережі? Java Networking: Сокети, TCP/IP, HTTP, JSON

👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
Patreon: / bobocode
GitHub: github.com/bobocode-projects
Telegram: t.me/bobocode​
LinkedIn: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
12-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Нарізка основних моментів
03:04 - Початок
04:03 - Мережева архітектура
07:06 - Що таке Сокет?
07:45 - Демо по сокетах
08:28 - Пакет java.net
09:55 - Реалізовуємо сервер
11:22 - Як читати дані з сокета?
15:22 - Реалізовуємо клієнт
11:22 - Як писати дані в сокет?
23:10 - Для чого потрібна багатопоточність?
23:26 - 🔥 Робимо сервер багатопоточним
30:01 - Експериментуємо...
35:00 - Для чого нам сокети?
35:53 - TCP vs. UDP
36:33 - Як дані передаються в мережі?
37:13 - Типи комунікації
38:21 - JSON - Типовий формат даних
39:45 - Як конвертувати JSON в Java обʼєкт?
41:04 - ЗАВДАННЯ: р еалізувати свій JSON конвертер
46:29 - Ніякої магії не існує
48:50 - Огляд HTTP протоколу
55:41 - Q&A по HTTP
01:00:24 - Що ми зазвичай робимо на проектах?
01:01:57 - ЗАВДАННЯ: знайти картинку з найбільшим розміром
01:03:55 - Для чого мені це все знати?
#opensource #java #education

Пікірлер: 30

  • @Bobocode
    @Bobocode Жыл бұрын

    👉 Навчання від Bobocode: bit.ly/3IRrJhj

  • @ASDjonok
    @ASDjonok3 ай бұрын

    Дякую

  • @k12360rty
    @k12360rty2 жыл бұрын

    Дуже дякую.

  • @user-wv7pk5sh3h
    @user-wv7pk5sh3h Жыл бұрын

    Дякую, дуже якісний контент в українському інтернет-просторі.

  • @yasha802
    @yasha8022 жыл бұрын

    Дякую за чудову лекцію 😊😊

  • @olegprylipko6084
    @olegprylipko60842 жыл бұрын

    Не бачу приводу не подякувати)) лекцiя во👍 ДЗ во🤟 Хто буде робити ДЗ напишiть розмір найбільшої картинки, я зміг знайти тiльки content-length=[178] і той у всіх однаковий

  • @mykhailomolnar2432

    @mykhailomolnar2432

    Жыл бұрын

    На момент комента це картинка mars.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/00010/soas/rdr/ccam/CR0_398381250PRCLF0030000CCAM05010L1.PNG і Content-Length - 548726

  • @FillLemon

    @FillLemon

    Жыл бұрын

    Також всюди 178, дивно може від api_key залежить

  • @baibula

    @baibula

    2 ай бұрын

    Скоріше за все у вас статус 301 і ви не зробили редірект.

  • @caffeinejavacode1475
    @caffeinejavacode1475 Жыл бұрын

    1:03:56 гарний поінт

  • @user-bn5en3eo4q
    @user-bn5en3eo4q7 ай бұрын

    Дуже цікаво. Дякую за таке чудове відео. Насправді, рік тому, я спробував створити простенький багато-поточний чат, так як цікавився тим як працюють компʼютерні мережі на низькому рівні. Спочатку тестував на локальному хості. Потім, прокинувши порт, спробував передати повідомлення на інший компʼютер через маршрутизатор. Далі я зохітв протестувати програму по мережі, але зʼєднання з хостом не відбулося. Помучившись і почитавши різноманітну інфу, я зрозумів, що з’єднання по мережі не вийде через те, що ip адреса мого маршрутизатора була приватною. Хоча можна було відправляти повідомлення через сусідський wifi, такий от експіріенс😢😅

  • @Bobocode

    @Bobocode

    7 ай бұрын

    Привіт! Якщо нема статичного IP, Ви можете встановити собі ngrok.

  • @user-bn5en3eo4q

    @user-bn5en3eo4q

    7 ай бұрын

    Дякую за пораду! Не знав, що є таке обхідне рішення.

  • @Bobocode
    @Bobocode2 жыл бұрын

    ДЗ: 1. Реалізувати примітивний JSON мапер (41:04) 2. Знайти картинку з найбільшим розміром (01:01:57) 3. Вправа hello-network-socket (bit.ly/3rGyThg)

  • @goodvin8554

    @goodvin8554

    Жыл бұрын

    Не зрозуміло завдання 2. Потрібно її вірішити зробив завдання на голих сокетах або можна використовувати якісь інші більш високорівневі компоненти? Бо там сайт Наса робить редірект на HTTPS протокол.

  • @Bobocode

    @Bobocode

    Жыл бұрын

    @@goodvin8554 HTTPS запит також можна зробити через "голий" сокет, просто треба трохи налаштувань.

  • @goodvin8554

    @goodvin8554

    Жыл бұрын

    @@Bobocode через SSLSocketFactory ?

  • @serhiidorodko2682
    @serhiidorodko26822 жыл бұрын

    Привіт, дуже класні уроки, дякую! В завданні про custom json converter як раз вдало підходить використання String Block, згаданий в записі Modern Java)

  • @MrRomanvideo

    @MrRomanvideo

    Жыл бұрын

    😂

  • @connection_failed
    @connection_failed25 күн бұрын

    Намагаюсь підключитись до ноута Тараса як у відео, щось не виходить. Підскажіть що не так?)

  • @Bobocode

    @Bobocode

    24 күн бұрын

    Якщо це жарт - то 😂. Якщо ж ні, то до ноута Тараса ви можете підключитися тільки, якщо він ввімкнений, "слухає" конкретний сокет, до якого ви намагаєтеся підключитися і відповідний порт відкритий на зовні...

  • @connection_failed

    @connection_failed

    24 күн бұрын

    @@Bobocode звісно жарт, не все так погано :D

  • @Bobocode

    @Bobocode

    24 күн бұрын

    @@connection_failed 😅

  • @bizkvit1985
    @bizkvit19852 жыл бұрын

    По завданню "Реалізувати примітивний JSON мапер" не вистачає прикладу реалізації.

  • @yasha802

    @yasha802

    2 жыл бұрын

    Та це міні дз, реалізація за вами)

  • @dolivoserg3603

    @dolivoserg3603

    Жыл бұрын

    для прикладу моя реалізація @SneakyThrows private static T jsonToObj(String json, Class userClass) { var constructor = userClass.getConstructor(); T user = constructor.newInstance(); for (String line : json .replaceAll("\"", "") .split(" ")) { if (!line.contains(": ")) continue; //parsing String[] fieldValue = line .replaceFirst(",", "") .trim() .split(": "); //deserialize var declaredField = userClass.getDeclaredField(fieldValue[0]); var value = fieldValue[1]; declaredField.set(user, value); } return user; }

  • @antonmaliar3463
    @antonmaliar3463 Жыл бұрын

    не зовсім зрозуміло чому джава не працює з TCP, ми ж можемо створити server socket і вказати в ньому любий порт, а основна робота TCP це ж робота з портами, чи тут вся фішка в тому що ми ці порти створює в віртуальній машині а не операційній системі?

  • @Bobocode

    @Bobocode

    Жыл бұрын

    Java працює з TCP. Точніше в Java ми, зазвичай використовуємо TCP і працюємо поверх нього.

  • @antonmaliar3463

    @antonmaliar3463

    Жыл бұрын

    @@Bobocode дякую

Келесі