Як дані передаються в мережі? 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: bit.ly/3IRrJhj
Дякую
Дуже дякую.
Дякую, дуже якісний контент в українському інтернет-просторі.
Дякую за чудову лекцію 😊😊
Не бачу приводу не подякувати)) лекцiя во👍 ДЗ во🤟 Хто буде робити ДЗ напишiть розмір найбільшої картинки, я зміг знайти тiльки content-length=[178] і той у всіх однаковий
@mykhailomolnar2432
Жыл бұрын
На момент комента це картинка mars.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/00010/soas/rdr/ccam/CR0_398381250PRCLF0030000CCAM05010L1.PNG і Content-Length - 548726
@FillLemon
Жыл бұрын
Також всюди 178, дивно може від api_key залежить
@baibula
2 ай бұрын
Скоріше за все у вас статус 301 і ви не зробили редірект.
1:03:56 гарний поінт
Дуже цікаво. Дякую за таке чудове відео. Насправді, рік тому, я спробував створити простенький багато-поточний чат, так як цікавився тим як працюють компʼютерні мережі на низькому рівні. Спочатку тестував на локальному хості. Потім, прокинувши порт, спробував передати повідомлення на інший компʼютер через маршрутизатор. Далі я зохітв протестувати програму по мережі, але зʼєднання з хостом не відбулося. Помучившись і почитавши різноманітну інфу, я зрозумів, що з’єднання по мережі не вийде через те, що ip адреса мого маршрутизатора була приватною. Хоча можна було відправляти повідомлення через сусідський wifi, такий от експіріенс😢😅
@Bobocode
7 ай бұрын
Привіт! Якщо нема статичного IP, Ви можете встановити собі ngrok.
@user-bn5en3eo4q
7 ай бұрын
Дякую за пораду! Не знав, що є таке обхідне рішення.
ДЗ: 1. Реалізувати примітивний JSON мапер (41:04) 2. Знайти картинку з найбільшим розміром (01:01:57) 3. Вправа hello-network-socket (bit.ly/3rGyThg)
@goodvin8554
Жыл бұрын
Не зрозуміло завдання 2. Потрібно її вірішити зробив завдання на голих сокетах або можна використовувати якісь інші більш високорівневі компоненти? Бо там сайт Наса робить редірект на HTTPS протокол.
@Bobocode
Жыл бұрын
@@goodvin8554 HTTPS запит також можна зробити через "голий" сокет, просто треба трохи налаштувань.
@goodvin8554
Жыл бұрын
@@Bobocode через SSLSocketFactory ?
Привіт, дуже класні уроки, дякую! В завданні про custom json converter як раз вдало підходить використання String Block, згаданий в записі Modern Java)
@MrRomanvideo
Жыл бұрын
😂
Намагаюсь підключитись до ноута Тараса як у відео, щось не виходить. Підскажіть що не так?)
@Bobocode
24 күн бұрын
Якщо це жарт - то 😂. Якщо ж ні, то до ноута Тараса ви можете підключитися тільки, якщо він ввімкнений, "слухає" конкретний сокет, до якого ви намагаєтеся підключитися і відповідний порт відкритий на зовні...
@connection_failed
24 күн бұрын
@@Bobocode звісно жарт, не все так погано :D
@Bobocode
24 күн бұрын
@@connection_failed 😅
По завданню "Реалізувати примітивний JSON мапер" не вистачає прикладу реалізації.
@yasha802
2 жыл бұрын
Та це міні дз, реалізація за вами)
@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; }
не зовсім зрозуміло чому джава не працює з TCP, ми ж можемо створити server socket і вказати в ньому любий порт, а основна робота TCP це ж робота з портами, чи тут вся фішка в тому що ми ці порти створює в віртуальній машині а не операційній системі?
@Bobocode
Жыл бұрын
Java працює з TCP. Точніше в Java ми, зазвичай використовуємо TCP і працюємо поверх нього.
@antonmaliar3463
Жыл бұрын
@@Bobocode дякую