• Скорось wifi не соответствует тарифу?

    @res2001
    Developer, ex-admin
    Вай-фай он разный. Есть несколько стандартов, отличающихся скоростью.
    Когда устройство подключается к вай-фай оно определяет по какому из стандартов будет работать. Определяется это в т.ч. в зависимости от внешних факторов, например от уровня сигнала, от количества помех и т.п.
    Если у вас много вай-фай точек в округе, то все они засирают одно и то же эфирное пространство и мешают друг другу, что снижает скорость передачи данных. Так что далеко не факт, что в ваших условиях ваше оборудование сможет выдать максимально возможные для него скорости.
    Обычно для обхода этой проблемы применяют двухдиапазонные роутеры (ну и клиентские устройства само собой), которые могут работать еще и на частоте 5 Ггц. Такие устройства стоят дороже, а потому встречаются реже и соответственно меньше помех создают друг другу на частоте 5 ГГц. Но, опять же, далеко не факт, что в ваших условиях это как-то вам поможет.
    Ответ написан
    Комментировать
  • Как включить WOL через VPN?

    @res2001
    Developer, ex-admin
    Широковещательные пакеты (а пакет WOL широковещательный) не маршрутизируются между сетями.
    Для обхода этого ограничения можно поднять NAT на ВПН интерфейсе ВПН сервера и сделать проброс UDP пакетов на WOL порту на широковещательный адрес подсети.
    В программе отправки WOL пакета соответственно надо указывать ВПН адрес ВПН сервера.
    По такой схеме работает "WOL over Internet". Именно для такого варианта предназначена опция "Internet" в вашей программе, но она требует поддержки со стороны NATа.

    Гораздо проще реализовать какой-то вариант удаленного запуска программы, отправляющей WOL с компа в сети. Для этого надо найти утилиту командной строки, которая умеет в WOL ну и вызвать ее удаленно с соответствующими параметрами.
    Ответ написан
    Комментировать
  • Обход NAT вполне реален в нынешних реалях?

    @res2001
    Developer, ex-admin
    Согласен с предыдущими отвечающими.
    Но, можно посмотреть в сторону IPv6. С его адресной базой NAT в принципе не нужен, можно раздавать белые адреса каждому "утюгу". Вот только не уверен, что провайдеры именно так поступают.

    Фаервол в любом случае может заблокировать трафик, хоть с NAT, хоть без NAT, хоть IPv6 - роли не играет.
    Обычно, что бы обходить фаервол просто используют "стандартные" порты на сервере, которые, как правило (но не обязательно), везде открыты, например TCP/80 (http) или TCP/443(HTTPS). Это не дает 100% гарантии прохождения фаервола, но шансы повышает.

    И кстати, если мы говорим об IPv4, то для того, что бы обойти NAT нужно использовать UDP, а не TCP. На TCP NAT не обойти.
    На счет STUN и т.п. Там смысл в том, что сам STUN сервер с белым IP нужен только для получения клиентами адреса и порта "сервера", дальнейшая передача трафика идет напрямую между клиентом и сервером. NAT в этом случае не обходится, а просто клиентами используется та же дырка в NAT, которая образовалась при подключении сервера к STUN.
    Ответ написан
  • Какой bat файл нужен для проверки состояния USB при включении?

    @res2001
    Developer, ex-admin
    Помнится где-то у микрософта была утилита командной строки devcon. Она позволяла много чего делать с устройствами. Посмотрите, может и вам поможет.
    Она умеет включать/отключать устройства, показывать состояние и т.п.
    https://docs.microsoft.com/en-us/windows-hardware/...
    Ответ написан
    Комментировать
  • Существют ли IDE с одновременной командной разработкой?

    @res2001
    Developer, ex-admin
    Думаю что нет.
    Сомневаюсь, что это нужно с практической точки зрения, т.к. если несколько программистов будут править один и тот же файл и взимозависимые участки кода, то они будут друг другу мешать, так что в итоге править будет только один, а остальные ждать своей очереди.
    Если же участки не зависимые - то с этим легко справляются системы контроля версий и "онлайн" тут нафиг не нужен.
    Ответ написан
    2 комментария
  • Как из папки раскидать все файлы по подпапкам по 10 шт?

    @res2001
    Developer, ex-admin
    но как указать чтоб скрипт работал с конкретной папкой

    Вам bat и cmd файлы то же надо раскидывать по каталогам?
    ...
    set "dirname=./test"
    ...
    For %%A In ("%dirname%/*.bat" "%dirname%/*.cmd" "%dirname%/*.mp4") Do (
    ...
        move /y "%dirname%/%%~A" "%DirN%"
    ...

    Зачем вам robocopy? С переносом файлов вполне справится move.
    Ответ написан
    Комментировать
  • Как исправить ошибку с запуском MicroSoft Store и меню Пуск?

    @res2001
    Developer, ex-admin
    Время от времени сталкиваюсь с похожей ошибкой. Лечится вполне успешно.
    В гугле полно инструкций для "windows 10 repair microsoft store".
    Например вот вполне подходящая howtoшка: https://www.intowindows.com/how-to-reinstall-store...
    Не скажу, какой именно из рецептов мне помог последний раз, но похоже, что-то из этого списка. Есть смысл переходить сразу к вариантам с использованием powershell.
    Ответ написан
  • Информация с сайта?

    @res2001
    Developer, ex-admin
    NAT не обязательно стоит у провайдера, он может быть у тебя дома на роутере и т.п. И оператор динамически вполне может раздавать белые адреса на твой роутер, а роутер уже будет раздавать серые адреса внутрь домашней сети.

    В локальных сетях обычно используются серые адреса, а значит где-то должен быть NAT и выпускать в интернет уже с белым адресом. Этот белый адрес NATа и видит сайт.

    Но бывает и так, что в локальной сети используются белые адреса. Видел пару таких случаев, когда контора в 90ых арендовала подсеть у провайдера и использует ее на компах в локальной сети по сей день. В этом случае NATа может и не быть, тогда пользователь ходит в интернет с тем адресом, который установлен у него на компе.
    То же самое может быть, если вы, например, купите у прова белый статический адрес и подключите кабель оператора в свой комп.

    Узнать другие адреса "по умолчанию" сервер не может, т.к. браузер не предоставляет такой возможности. Но с помощью плагинов и т.п., думаю, можно что-то придумать, но тут уже без помощи пользователя не обойтись (ведь плагин надо сначала установить).
    Можно узнать, например, версию браузера, какая ОС используется и много чего еще. В интернете полно ресурсов, которые показывают, что получилось достать из вашего браузера.

    Кстати, если используется IPv6, то высока вероятность, что прямо на компе используется белый адрес. Тут адресного пространства хватает, чтоб выдать белый адрес каждой блохе. Так что NAT не нужен.
    Ответ написан
  • Что делать если openvpn сильно режет скорость интернета?

    @res2001
    Developer, ex-admin
    Видимо, при включенном ВПН у вас меняется шлюз по умолчанию и весь трафик идет через ВПН.
    Это реально может сильно снизить скорость.
    Если ВПН вам нужен именно для такого использования, то скорее всего стоит перенести сервер на другую площадку.
    Если же ВПН вам нужен, например, для доступа в корпоративную сеть, то стоит убрать настройку шлюза по умолчанию из конфига ВПН сервера.
    Ответ написан
    Комментировать
  • Какой сервер используется в Ubuntu?

    @res2001
    Developer, ex-admin
    node.js сама умеет в веб-сервер.
    На линуксе по умолчанию никаких веб серверов не установлено. Все ставится отдельно.
    Ответ написан
    4 комментария
  • Проблемы с компиляцией?

    @res2001
    Developer, ex-admin
    В "потом" не указана полная команда.

    Похоже, что линковщик не может найти libraylib.a по указанному в -L пути.
    Попробуйте указать абсолютный путь, а не относительный.

    Так же можно посмотреть с помощью objdump существуют ли в libraylib.a символа, указанные в ошибках.
    libraylib.a в ручную собрана или вы взяли уже готовую где-то?
    Ответ написан
  • Почему не могу записать данные из массива структур в файл?

    @res2001
    Developer, ex-admin
    Для записи строк используй конструкцию:
    srt.write(stu[i].name.c_str(), stu[i].name.length());


    Если потом захочешь читать этот файл программно, то запись надо модернизировать.
    Например между полями записывать символ разделитель, или перед каждой строкой писать ее размер.

    Файл в двоичном режиме открываешь с каким-то скрытым смыслом?
    Ответ написан
    Комментировать
  • Как проверять существование файла C++?

    @res2001
    Developer, ex-admin
    В C++17 есть std::filesystem::exists.
    В более ранних версиях C++ можно после открытия сразу перейти в конец файла и посмотреть текущую позицию. Если позиция 0, то файл либо был пустой при открытии, либо вновь только что созданнался. После этого надо опять вернуться на начало файла.
    Вместо ofstream можно использовать функцию std::fopen, там можно с помощью параметра mode запретить открывать не существующий файл. Если функция вернет пустой FILE*, то либо файл не существует, либо произошла другая ошибка. Можно дальше проанализировать значение переменной errno, чтоб отделить ситуацию отсутствия файла от других возможных ошибок, но это уже платформозависимо.

    Так же можно использовать API ОС для проверки существования файла. В линукс - stat(..).
    Ответ написан
    Комментировать
  • Мало памяти на компьютере. Что делать?

    @res2001
    Developer, ex-admin
    Если есть USB3.0 (синие разъемы), то можно купить внешний HDD/SSD с подключением USB3.0 и установить на него ОС. Или как вариант перенести на внешний диск пользовательский профиль.
    Правда тут другие проблемы могут быть - USB устройства могут отключаться прямо во время работы. Для борьбы с этим можно подключить и залить пластиком разъемы, сам диск жестко закрепить с ноутом. Чтоб не было возможности отсоединить диск или поменять порт диска. Это уменьшит вероятность отключения, но 100% гарантии все равно не даст.
    Ответ написан
  • Как вывести динамический массив внутри синхронизированного потока?

    @res2001
    Developer, ex-admin
    В addv и delv в блоке else вы разблокируете мьютекс и дальше он у вас все время в разблокированном состоянии.
    Так что никакой синхронизации не происходит в принципе.
    Вам не нужно разблокировать мьютекс, просто вместо usleep используйте pthread_cond_timedwait. Внутри этой функции мьютекс неявно разблокируется, потом ждет наступление события (сигнал или таймаут), затем мьютекс снова захватывается и только после этого возвращается управление вызывающему коду.
    Аналогично работает и pthread_cond_wait, только без таймаута.
    В этом случае блок if следует переписать так что бы не было двойного вызова pthread_cond_wait.

    Не увидел в коде где вы инициализируете мьютекс и условную переменную, а так же где вы их удаляете. Без инициализации все функции их использующие будет возвращать ошибки.

    Нужно ВСЕГДА обрабатывать возвращаемые значения системных функций!

    Почему вы потоки используете из std, а мьютекс и условную переменную из pthread? Где логика?
    Ответ написан
    Комментировать
  • Как пройти ошибку в bat файле при присвоении имени файлам?

    @res2001
    Developer, ex-admin
    У вас там ожидалось только имя файла, а вставляется полный путь к файлу, поэтому и ошибка.
    Вот это место в команде "part-^%03d.mp4".
    Замените на "%%~ni.mp4"
    Ответ написан
    6 комментариев
  • Как собрать проект написанные QT в linux?

    @res2001
    Developer, ex-admin
    Принцип тот же, только, обычно, зависимые библиотеки не таскаются вместе с программой, а устанавливаются как зависимости в общие каталоги (/usr/lib и т.п.).
    Создается пакет для используемого в конкретном дистрибутиве пакетного менеджера, по правилам этого пакетного менеджера. В пакете описываются зависимости и при установке вашего софта, зависимости так же будут установлены, если, конечно, они существуют как пакеты в репозиториях дистрибутива.
    Для своего софта можно сделать и поддерживать собственный репозиторий, который можно добавить в пакетный менеджер, или добиться включения в родной репозиторий дистрибутива, или распространять пакет каким-то другим образом (его можно поставить в ручном режиме с помощью того же пакетного менеджера, указав файл пакета).
    Так же возможно распространять ПО в исходниках и пусть каждый желающий сам собирает, в readme описать все зависимости и как их установить в наиболее популярные дистрибутивы. Кстати в исходниках вместе со сборкой софта, вполне возможно сразу собирать пакет для используемого пакетного менеджера. В установке с помощью пакетного менеджера есть преимущества перед установкой с помощью make && make install
    Ответ написан
    Комментировать
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    Developer, ex-admin
    что может влиять?

    Много факторов: медленная/высокая скорость на одном из портов и/или не достаточная длина буфера, большая загрузка ЦП во время работы (причем он может быть загружен любой не связанной задачей), плохое качество связи по сети, что приводит к повторной передаче и тормозит текущую передачу, что приводит к переполнению буферов и т.п.
    Учитывая, что в TCP данные не могут теряться, значит они теряются либо по дороге в nc, либо внутри nc.
    Если в nc есть возможность поиграть с размерами буферов - поэкспериментируйте с ними. Но часто универсальные решения не являются оптимальными для конкретной задачи.
    Ответ написан
  • Как правильно передавать функцию в качестве параметра?

    @res2001
    Developer, ex-admin
    Оба варианта правильные. Имя функции это и есть указатель на функцию, так что sizeof(foo) == sizeof(&foo). По сути тут компилятор просто игнорирует операцию взятия адреса от функции.
    Вся функция никогда не передается - только указатель.

    Я бы предпочел второй вариант, т.к. тут явно указано, что надо передавать указатель на функцию.
    На самом деле тип указателя на функцию я бы оформил через typedef, и в параметре указывал бы уже имя типа:
    typedef void (*foo_t)();
    void fooPrint(foo_t foo) {
        foo();
    }
    Ответ написан
    4 комментария
  • Как переместить информацию в другой диск?

    @res2001
    Developer, ex-admin
    Для стандартных пользовательских папок, типа Документы, Загрузки, ... в свойствах есть закладка "Расположение". Тут можно указать расположение папки на диске D, и перенести в новое расположение все содержимое предыдущего каталога. Конечно у пользователя должны быть права на папку в новом расположении.

    Вместо переноса папок по отдельности, можно перенести весь каталог с профилем пользователя на диск D: Это удобно, т.к. помимо прочего и временный каталог, и кэш браузера, и прочие User AppData перенесутся то же.
    Процедуру переноса описывал тут уже несколько раз тут или тут или там.
    Я обычно это делаю сразу после установки винды, пока профиль еще чистый. Но и с не пустым профилем это вполне реально сделать.
    Ответ написан
    Комментировать