77. I Coded Network Discovery Without AI (Here's What Happened)

00:00 Завершающий этап разработки приложения • Приложение для пакетной обработки почти готово, осталась доработка пользовательского интерфейса и функций. • Использовался искусственный интеллект для ускорения процесса, но для обучения полезно вернуться к ручному программированию. • Цель — создать выпадающий список для обнаружения хоста на любой машине с SolidWorks. 00:57 Методы обнаружения хоста • Рассматриваются методы обнаружения хоста: MDNS, SSDP и простой поиск IP-адресов. • Выбор падает на MDNS как наиболее распространённый способ. • Структура приложения: хостинг, общая библиотека и клиент. 01:55 Настройка портов и ключей • Определение портов по умолчанию и для обнаружения. • Ограничение обнаружения конкретными ключами, чтобы избежать обнаружения ненужных устройств. • Создание запроса и ответа на обнаружение. 03:25 Реализация хостинга • Отказ от локального хостинга для трансляции на все устройства. • Использование сервера Kestrel для обработки конечных точек. • Запуск прослушивателя UDP для ответа на запросы клиентов. 06:35 Обработка UDP-запросов • Обработка UDP-запросов и преобразование байтов в строку. • Отправка ответа с учётом токена отмены. • Проверка конечной точки и отправка сообщения. 09:38 Тестирование обнаружения • Проверка работы обнаружения путём изменения порта на более распространённый. • Подтверждение запуска обнаружения на новом порту. 10:02 Реализация клиента • Добавление зависимости для обнаружения хостов в клиентское приложение. • Создание службы обнаружения хостов и асинхронной функции. • Подготовка к интеграции службы в клиентское приложение. 11:01 Асинхронное обнаружение хостов • Использование токенов отмены для предотвращения зависания при подключении к сети. • Создание нового токена отмены при необходимости. 11:48 Сохранение списка хостов • Сохранение списка обнаруженных хостов в виде нового списка строк. 12:06 Подготовка к отправке данных • Преобразование данных в байты для отправки. • Использование UDP-клиента для широковещательной передачи. 13:23 Получение широковещательных адресов • Разработка метода для получения широковещательных адресов подсети. • Проблемы с широковещательной передачей по UDP и необходимость ручного определения IP-адресов. 14:19 Проверка сетевых интерфейсов • Получение IP-адресов сетевых интерфейсов Wi-Fi и Ethernet. • Проверка подключения и работы интерфейсов. 16:23 Тестирование сервиса обнаружения хостов • Создание Bootstrapper для тестирования нового сервиса обнаружения хостов. • Проверка полученных IP-адресов и адресов одноадресной рассылки. 18:17 Отправка широковещательных сообщений • Отправка широковещательных сообщений на активные IP-адреса. • Передача токена отмены для управления процессом. 20:15 Обработка тайм-аутов и исключений • Создание токенов отмены с двухсекундным тайм-аутом. • Обработка исключений и отмена операций при истечении времени ожидания. 22:14 Завершение процесса • Игнорирование сбоев и получение ответа в буфере. • Подчёркивание бессмысленности некоторых частей кода из-за игнорирования сбоев. 22:42 Обнаружение IP-адреса • Если ответ равен правильному ответу на обнаружение, получаем IP-адрес вызывающего абонента. • Если обнаруженные хосты не содержат IP-адрес, добавляем его. • Токен отмены предотвращает бесконечный цикл ожидания. 24:01 Введение токенов отмены • Используем службу поиска хостов только для частных заявок. • Вводим зависимость и токен отмены для сетевого взаимодействия. • Удаляем поддельные данные из списка для реального отображения. 24:52 Наблюдаемое свойство и асинхронное обнаружение • Создаём наблюдаемое свойство private boolean для обнаружения хостов. • Настраиваем службу обнаружения хостов и создаём функцию для асинхронного обнаружения. • Привязываем функцию к кнопке для ручного обновления. 26:39 Отмена предыдущих открытий • Отменяем все предыдущие открытия перед новым. • Используем токен отмены для управления сетевыми взаимодействиями. • Проверяем наличие токена отмены перед выполнением поиска. 28:48 Автоматическое заполнение списка • Автоматически заполняем список узлов SolidWorks. • Сохраняем выбор, если он уже есть в списке. • Проверяем наличие узлов SolidWorks перед отображением списка. 30:44 Кнопка обновления • Добавляем кнопку обновления для принудительного обновления списка. • Привязываем видимость кнопки к состоянию обнаружения хостов. • Тестируем работу кнопки обновления. 33:13 Исправление ошибок • Исправляем ошибки в привязке видимости и предварительном заполнении списка. • Переходим к визуальному интерфейсу для исправления ошибок. • Продолжаем работу над улучшением интерфейса. 33:51 Настройка интерфейса • Обсуждение интервалов и отступов в интерфейсе. • Упоминание о необходимости унификации пользовательских полей и отступов. 34:51 Проблемы с поиском хостов 35:47 Анализ проблем с обновлением 36:42 Проверка портов и настроек 38:08 Работа с настройками и портами 39:10 Проблемы с пользовательским интерфейсом 42:31 Использование уведомлений 44:18 Финальные настройки 45:15 Планы на будущее

Иконка канала Ленинский Букварь
245 подписчиков
12+
1 просмотр
16 дней назад
12+
1 просмотр
16 дней назад

00:00 Завершающий этап разработки приложения • Приложение для пакетной обработки почти готово, осталась доработка пользовательского интерфейса и функций. • Использовался искусственный интеллект для ускорения процесса, но для обучения полезно вернуться к ручному программированию. • Цель — создать выпадающий список для обнаружения хоста на любой машине с SolidWorks. 00:57 Методы обнаружения хоста • Рассматриваются методы обнаружения хоста: MDNS, SSDP и простой поиск IP-адресов. • Выбор падает на MDNS как наиболее распространённый способ. • Структура приложения: хостинг, общая библиотека и клиент. 01:55 Настройка портов и ключей • Определение портов по умолчанию и для обнаружения. • Ограничение обнаружения конкретными ключами, чтобы избежать обнаружения ненужных устройств. • Создание запроса и ответа на обнаружение. 03:25 Реализация хостинга • Отказ от локального хостинга для трансляции на все устройства. • Использование сервера Kestrel для обработки конечных точек. • Запуск прослушивателя UDP для ответа на запросы клиентов. 06:35 Обработка UDP-запросов • Обработка UDP-запросов и преобразование байтов в строку. • Отправка ответа с учётом токена отмены. • Проверка конечной точки и отправка сообщения. 09:38 Тестирование обнаружения • Проверка работы обнаружения путём изменения порта на более распространённый. • Подтверждение запуска обнаружения на новом порту. 10:02 Реализация клиента • Добавление зависимости для обнаружения хостов в клиентское приложение. • Создание службы обнаружения хостов и асинхронной функции. • Подготовка к интеграции службы в клиентское приложение. 11:01 Асинхронное обнаружение хостов • Использование токенов отмены для предотвращения зависания при подключении к сети. • Создание нового токена отмены при необходимости. 11:48 Сохранение списка хостов • Сохранение списка обнаруженных хостов в виде нового списка строк. 12:06 Подготовка к отправке данных • Преобразование данных в байты для отправки. • Использование UDP-клиента для широковещательной передачи. 13:23 Получение широковещательных адресов • Разработка метода для получения широковещательных адресов подсети. • Проблемы с широковещательной передачей по UDP и необходимость ручного определения IP-адресов. 14:19 Проверка сетевых интерфейсов • Получение IP-адресов сетевых интерфейсов Wi-Fi и Ethernet. • Проверка подключения и работы интерфейсов. 16:23 Тестирование сервиса обнаружения хостов • Создание Bootstrapper для тестирования нового сервиса обнаружения хостов. • Проверка полученных IP-адресов и адресов одноадресной рассылки. 18:17 Отправка широковещательных сообщений • Отправка широковещательных сообщений на активные IP-адреса. • Передача токена отмены для управления процессом. 20:15 Обработка тайм-аутов и исключений • Создание токенов отмены с двухсекундным тайм-аутом. • Обработка исключений и отмена операций при истечении времени ожидания. 22:14 Завершение процесса • Игнорирование сбоев и получение ответа в буфере. • Подчёркивание бессмысленности некоторых частей кода из-за игнорирования сбоев. 22:42 Обнаружение IP-адреса • Если ответ равен правильному ответу на обнаружение, получаем IP-адрес вызывающего абонента. • Если обнаруженные хосты не содержат IP-адрес, добавляем его. • Токен отмены предотвращает бесконечный цикл ожидания. 24:01 Введение токенов отмены • Используем службу поиска хостов только для частных заявок. • Вводим зависимость и токен отмены для сетевого взаимодействия. • Удаляем поддельные данные из списка для реального отображения. 24:52 Наблюдаемое свойство и асинхронное обнаружение • Создаём наблюдаемое свойство private boolean для обнаружения хостов. • Настраиваем службу обнаружения хостов и создаём функцию для асинхронного обнаружения. • Привязываем функцию к кнопке для ручного обновления. 26:39 Отмена предыдущих открытий • Отменяем все предыдущие открытия перед новым. • Используем токен отмены для управления сетевыми взаимодействиями. • Проверяем наличие токена отмены перед выполнением поиска. 28:48 Автоматическое заполнение списка • Автоматически заполняем список узлов SolidWorks. • Сохраняем выбор, если он уже есть в списке. • Проверяем наличие узлов SolidWorks перед отображением списка. 30:44 Кнопка обновления • Добавляем кнопку обновления для принудительного обновления списка. • Привязываем видимость кнопки к состоянию обнаружения хостов. • Тестируем работу кнопки обновления. 33:13 Исправление ошибок • Исправляем ошибки в привязке видимости и предварительном заполнении списка. • Переходим к визуальному интерфейсу для исправления ошибок. • Продолжаем работу над улучшением интерфейса. 33:51 Настройка интерфейса • Обсуждение интервалов и отступов в интерфейсе. • Упоминание о необходимости унификации пользовательских полей и отступов. 34:51 Проблемы с поиском хостов 35:47 Анализ проблем с обновлением 36:42 Проверка портов и настроек 38:08 Работа с настройками и портами 39:10 Проблемы с пользовательским интерфейсом 42:31 Использование уведомлений 44:18 Финальные настройки 45:15 Планы на будущее

, чтобы оставлять комментарии