Задать вопрос
  • Как исправить ошибки вызова обработчика событий в другом потоке?

    @res2001
    Dyikot, Ожидание, но правильнее, видимо, - снять таймер с исполнения и уничтожить.
    Написано
  • Можно ли частично изменить маску подсети в сети организации?

    @res2001
    hrabrahrabr,
    то какая разница ?

    Чтоб запас был для добавления новых хостов в подсеть, без очередного этапа расширения подсети.
    Написано
  • Как исправить ошибки вызова обработчика событий в другом потоке?

    @res2001
    Вероятно sleep_for закончился раньше, чем таймер и объект t уничтожился, при этом таймер, возможно, не уничтожился. Что у вас там в деструкторе? Как обрабатывается вариант вызова деструктора, когда таймер работает?

    Показывать ошибки в коде CRT - бесполезно, т.к. из этих скринов все равно контекста не видно - перейдите по стеку вызовов к ближайшему вашему коду (если он есть) и там уже можно что-то показать.
    Написано
  • Какие протоколы прикладного уровня над TCP/IP поддерживают постоянное соедиение как WebSocket?

    @res2001
    Протокол может быть какой угодно, вполне вероятен какой-то самопальный протокол - никто не запрещает сочинять свои. Раз набор цифр, значит протокол двоичный.
    Раз есть описание протокола в документации, то очень вероятно, что это самопальный протокол, иначе бы просто дали ссылку на RFC например или другой стандарт.
    Написано
  • Почему скорость подключения к вай фай точке не происходит мгновенно?

    @res2001
    Meliborn,
    а тут бук за 4 штуки и роутер за штуку не может быстрее 5 секунд соединиться.

    Бук за N штук никак на скорость света не влияет. Эл.-магнитное поле распространяется слишком медленно. Да еще и протоколом заложены очевидно какие-то таймауты для определенных процессов.
    Почему раз это 2 устройства то мгновенно не может быть?

    Потому что устройства на старте ничего друг о друге не знают. Для начала надо найти друг друга, договориться о параметрах работы, проверить наличие интернета - все это процессы последовательные, требуют времени и мало зависят от стоимости бука.
    Написано
  • Почему скорость подключения к вай фай точке не происходит мгновенно?

    @res2001
    Мгновенно - это сколько в секундах?
    Учитывая, что это 2 разных устройства, то мгновенно (т.е. совсем без затрат времени) в принципе быть не может.
    Написано
  • Будет ли правильным если в ESXI один вирутальный сервер будет подключен сразу к трём физически разным сетям, две из которых относятся к КИИ?

    @res2001
    Добавить можно, почему бы и нет. Хоть 10 сетей.
    Только забикс тут не при чем.
    Тут стоит учесть соображения безопасности, особенно при подключении производственных сетей. Чтоб не случилось так, что залетел вирус на комп манагера или бухгалтера, а встала производственная линия.
    В свое время когда требовалось физически отделить по соображениям безопасности подсеть я в разрез ставил отдельный шлюз, на котором настраивал фаервол с жесткими правилами для доступа между сетями.
    Забикс сможет общаться с агентами с помощью обычной межсетевой маршрутизации, через промежуточный шлюз/фаервол. При этом он может находится в офисной сети с одним сетевым интерфейсом.
    Написано
  • Как приоисходит маршрутизация с белым IP?

    @res2001
    Илья,
    К сожалению доступа к админке микротика нет.

    У кого есть? Может эти вопросы надо ему задать?
    По новому адресу подключиться к RDP вообще не получается, только по старому.

    Что с ВПН? То же только по старому?
    Возникает другой вопрос - доступно ли что-то по новому адресу?

    Можно задать вопрос провайдеру - "почему сервисы все еще доступны по старому адресу?"
    Возможно они там со своей стороны чего-то намудрили, такое то же вполне может быть.
    Если это провайдер виноват и у вас нет доменного имени, то при наведении порядка, клиенты со старыми адресами отвалятся.
    Написано
  • Как приоисходит маршрутизация с белым IP?

    @res2001
    Если вы покупали у того же провайдера и доменное имя, то возможно, что провайдер поправил и адрес в DNS для вашего домена.
    Доменное имя могло использоваться и в настройках RDP клиента и в настройках OpenVPN клиента. Соответственно эти клиенты автоматически начали подключаться на новый адрес.
    Для проверки вы можете сами из интернета подключиться по старому адресу по RDP и VPN, по новому адресу и по имени.

    1. RDP сервер у вас же ведь не роутер. Поэтому доступ к серверу происходит через NAT, а NAT подменяет адрес назначения на входящих пакетах (и адрес отправителя на исходящих).
    2. Для ответа на этот вопрос надо понять по какой причине клиенты продолжают иметь доступ к вашим сервисам. Если мое предположение с доменным именем верно, то думаю, что ничего неожиданно не отвалится из-за изменения адреса.
    3. ВПН у вас вероятно на роутере, можно посмотреть настройки ВПН сервера там. Но скорее всего внешнего адреса вы там не увидите, он просто слушает WAN интерфейс и ему в принципе все равно какой там адрес. Ваш внешний адрес (или доменное имя) указан в конфиге клиента ВПН.
    RDP сервер внутри сети, на роутере должен быть настроен в NATе проброс портов. На RDP сервере то же не настраивается внешний адрес, т.к. для RDP сервера внешний адрес - это всего лишь промежуточных хоп.
    Написано
  • Почему мой компьютер не виден в локальной сети?

    @res2001
    Иван, Потому что NETBIOS это древний протокол. Во время его рождения никаких домашних роутеров еще в помине не было. В лучшем случае у тебя дома был dial-up модем. А микрософт роутеры не выпускает, так что им это фиолетово.
    Да и роутеры не стремятся реализовывать его.
    Не уверен есть ли реализация его под линукс. Если есть, то теоретически возможно его завести на роутере с OpenWRT.
    Написано
  • Почему мой компьютер не виден в локальной сети?

    @res2001
    Иван,
    Простите, накипело

    Проблема известная, ее можно обойти ручной настройкой. Но 100% гарантии это не дает. Настройки могут слететь при каких-то обновлениях или например при замене компа/переустановки ОС.
    Информации в интернете по этой теме довольно много, надо только правильно искать.
    Сейчас проблема пожалуй еще острее, т.к. развелось много версий винды и у них свои нюансы в этом отношении.
    Написано
  • C++ cmake boost multithread asio. Как правильно добавить ссылку на библиотеки boost?

    @res2001
    Alex XYZ,
    Хотелось бы какой-то метод, типа передачи переменной из консоли (-DVAR=PATH)

    Пожалуйста, можете задавать параметром.
    В cmakelists.txt эти переменные можно сделать как option. Только понадобиться видимо 2 переменных - одна для каталога с библиотеками, вторая для каталога с заголовочными файлами. Ну или принять для себя какое-то соглашение, что в одной переменной задается общий каталог, а в подкаталоге скажем include будут лежать хедеры, а в lib - бинарники библиотеки.
    Можете проверять наличие нужных файлов, в cmake есть нужные механизмы. Или не проверять - тогда за вас проверит компилятор и выдаст ошибки при сборке.
    При желании из этого параметра можно сделать цель импортируемой библиотеки:
    add_library(boost IMPORTED)
    Как по мне, оперировать целями намного удобнее, чем переменными или чем-то еще. Особенно если проект достаточно большой и используется несколько библиотек, своих или чужих.
    Написано
  • Почему мой компьютер не виден в локальной сети?

    @res2001
    Если сеть без домена (одноранговая), то это довольно нормальная история, т.к. в одноранговой сети совсем другой механизм обнаружения станций, который может давать сбой. Тонкой ручной настройкой это можно улучшить. Если интересно как, то гуглите по "master browser", можно начать отсюда:
    https://habr.com/ru/articles/680896/
    https://sysadmins.online/threads/499/
    По идее по IP адресу можно получить доступ всегда - тут механизм обнаружения не должен использоваться. Если по какой-то причине доступа по IP нет, то причина в чем-то другом, надо попытаться разобраться.
    Написано
  • C++ cmake boost multithread asio. Как правильно добавить ссылку на библиотеки boost?

    @res2001
    Alex XYZ, Ну тогда сделайте в проекте каталог, куда положите исходники буста и собирайте его как отдельную цель тем же cmake.
    Буст из коробки не поддерживает сборку через cmake, но вот есть такое: https://github.com/boostorg/cmake

    Если ваш проект лежит в git репе, то сделайте каталог с бустом субмодулем в git, так будет удобнее для автоматического скачивания зависимостей вместе с проектом.
    Написано
  • C++ cmake boost multithread asio. Как правильно добавить ссылку на библиотеки boost?

    @res2001
    Чтоб не менять для каждой платформы ставьте буст с помощью какого-либо пакетного менеджера, а в cmake ищите пакет буста стандартным способом: find_package, pkg_check_modules и т.п.
    Например в ubuntu: apt install libboost-dev lib-boost-doc
    Можно ставить и отдельно, только необходимые части буста.
    В винде можно использовать vcpkg для MSVC или pacman в msys2 или что-то еще.
    Написано
  • Какой сейчас есть актуальный профайлер под винду?

    @res2001
    И отдельный интересный вопрос: если мой код не использует API (виндовое, линуксовое), то можно же отпрофилировать под виндой, и надеяться, что и в линуксе оно будет работать быстро?

    Скорее всего так и будет. Но нюансы могут быть, так что как минимум протестировать стоит, если эта платформа важна.
    Написано
  • Как генерировать палитру всех 24бит цветов в изображении размером 4096х4096 чтобы был плавный переход цвета?

    @res2001
    Разместить 16+ млн. цветов задача не простая.
    Посмотрите, как это делают другие.
    Возьмите для примера в любой программе реализацию интерфейса для выбора цвета. Там обычно не пытаются разместить все цвета разом.
    Для примера:
    https://coolors.co/gradient-maker/
    или например в настройках винды personalization->color

    Если делать полный градиент, то выйдет изображение, где одна сторона будет состоять из 16+ млн.пикселей, а это довольно много. Соответственно размер изображения уже не будет 4096*4096 пикселей, а будет гораздо больше, т.к. другую сторону вы явно будете делать больше чем в 1 пиксель.
    Написано
  • Задача на каналы, stderr, stdin, stdout в Linux. Как работают потоки ввода-вывода в Linux?

    @res2001
    Задачу не понял. Что в итоге то в канал надо перенаправлять и stderr и stdout? А нумеровать строки во всем потоке stderr+stdout или в каком-то отдельном.

    2. Операторы перенаправления потоков выполняются справа налево или слева направо?
    3. Операторы перенаправления выполняются последовательно (то есть ожидают выполнения предыдущих), ил
    и выполняются параллельно?

    Порядок выполнения операторов перенаправления слева на право.
    Продемонстрирую на примере:
    1. ls file1 1>output.txt 2>&1
    2. ls file1 2>&1 1>output.txt

    В 1 случае stdout сначала перенаправится в output.txt, а затем stderr перенаправится в stdout (т.е. то же в output.txt)
    Во 2 случае сначала stderr перенаправится в stdout (т.е. в консоль по умолчанию), затем stdout в output.txt. При этом stderr так и останется направленным в консоль.
    Написано
  • Как настроить CMake на установку пакетов?

    @res2001
    Eugene Usachev,
    куда следует устанавливать статически линкуемые библиотеки

    Это не важно. Обычно заводят подпапку с произвольным названием (я использую обычно deps) и туда складывают субмодули. Вы же потом эту папку должны будете использовать в своем cmakelists.txt.
    Как их линковать мне тоже ещё не известно

    По линковке библиотек тут регулярно вопросы задают, несколько раз давал довольно развернутые ответы.
    Но у вас есть система сборки cmake - у нее свои методы для этого, которые все равно в итоге приводят к добавлению необходимых ключей в командную строку компилятора.
    не могли бы вы задать вектор направления поиска?

    Для cmake после добавления таргета библиотеки обычными средствами add_library, просто добавляете его в зависимость к своему основному проекту:
    ...
    add_library(third_party_libs ...)
    ...
    add_executable(myprog ...)
    target_link_libraries(myprog third_party_libs)

    Если библиотека сама поддерживает сборку с помощью cmake, то проще всего собрать ее штатным способом, указав ее каталог в add_subdirectory(). В ходе сборки библиотека создаст свой таргет, его и будете использовать в своем проекте.
    Если же библиотека не поддерживает сборку cmakeом, то придется проанализировать как она собирается, где лежат файлы исходного кода, где заголовки и сделать свою цель с помощью add_library. В этом случае нужно выделить интерфейсные заголовочные файлы (которые вы будете подключать в своем приложении) и отдельно указать их с опцией PUBLIC (или INTERFACE) в add_library.
    Написано
  • Как обновить с++ на мак?

    @res2001
    GavriKos, Действительно
    Впрочем, моя ошибка в этом, не влияет на остальное мною написанное.
    Написано