• Почему не работает обмен данными через сокеты TCP Windows 2008?

    @res2001
    Developer, ex-admin
    Начать можно с пинга сервера, далее протестируйте подключение через телнет:
    telnet IP PORT
    Если подключиться экран очистится и возможно соединение сразу разорвется (но не обязательно, зависит от сервера).
    Если телнет подключиться, значит проблема в клиентском софте. Если не подключиться - нужно проверять всю цепочку от сервера до клиента, блокировка может быть где угодно, в т.ч. у провайдера.
    Ответ написан
    Комментировать
  • Как ограничить число исполняемых потоков?

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

    @res2001
    Developer, ex-admin
    Нельзя сохранить несколько значений - только одно.
    Используйте курсор для обхода строк.
    Для возврата из функции - можно возвращать таблицу (для ms sql).
    Ответ написан
    Комментировать
  • Построение графика функции на языке C?

    @res2001
    Developer, ex-admin
    Перейдите от консольного приложения к оконному, например - простейшее окно на Qt и выводите график уже в графическое окно средствами Qt. График можно нарисовать вручную, либо воспользоваться какими-либо готовыми Qt виджетами, они есть.
    Ответ написан
    Комментировать
  • OPENVPN: балансировка + фиксированные IP клиентов = возможно ли?

    @res2001
    Developer, ex-admin
    1.В чем смысл балансировки на одном хосте? Балансировка нужно, если хост не справляется и нужно направить часть подключений на другой хост. Поэтому балансировать на одном хосте - полная фигня.
    2.Самый простой вариант балансировки - с помощью двух записей А в ДНС для одного имени сервера OpenVPN. DNS в этом случае будет отдавать записи по round robin и у вас получится бесплатная балансировка.
    Нужно будет на разных серверах OpenVPN назначать клиентам адреса разных подсетей, иначе, как вы сами правильно заметили начнутся грабли с маршрутизацией.
    OSPF в такой конфигурации вообще не нужен.
    Ответ написан
  • Как хранить версии текстов?

    @res2001
    Developer, ex-admin
    Можно версионность организовать на основе одной таблицы, достаточно добавить в таблицу поле с timestamp. При изменении просто добавляем новую запись с новым timestamp. Для выбора текущей записи, выбираем запись с наибольшим timestamp. Легко делается интерфейс для просмотра изменений и т.п.
    Для удаления, нужно завести поле состояния, куда будет писаться признак удаления, физически записи не удалять.
    Подобную схему таблиц с историей неоднократно видел в банковском софте.
    Ответ написан
    Комментировать
  • Как оптимально работать с данными в JSON?

    @res2001
    Developer, ex-admin
    Вставлять большой массив данных в SQL лучше с помощью bulk insert, но, на сколько я помню, эта операция не понимает json (нужно уточнить). Можно из json конвертнуть в csv (или во что-либо другое, с чем bulk insert работает), а потом уже вставлять в sql. JSON преобразовать в csv можно достаточно простым скриптом на javascript.
    Чтоб быстро работал поиск, нужно сделать соответствующие индексы.
    Предложенный альтернативный вариант можно считать рабочим, только если нет сильно удаленных клиентов с не слишком быстрыми каналами связи (и вообще их не очень много), кроме того, чтоб не таскать на каждый запрос этот огромный BLOB можно вытянуть его один раз при старте клиента, а потом уже искать только локально.
    Но, как по мне, вариант с загрузкой в SQL вполне рабочий.
    Ответ написан
    Комментировать
  • Как понять, какие sql запросы грузят процессор?

    @res2001
    Developer, ex-admin
    Только подозрение?
    Нужно убедится точнее.
    Если на линуксе, то посмотрите в top что грузит проц, если винда - менеджер задач.
    Естественно есть инструменты для профилирования БД, только нужно знать какой сервер БД вы используете - для каждого свой инструмент.
    Ответ написан
    Комментировать
  • Как удалить историю писем outlook в windows?

    @res2001
    Developer, ex-admin
    Посмотрите настройки службы индексирования (она же Windows Search), там можно пересоздать индексы принудительно. В win10 в поиске наберите "indexing options" - это те самые свойства.
    Это она показывает результат в окне поиска. Пока в поисковой базе службы индексирования будут оставаться записи вы их сможете увидеть при поиске.
    PS: Это как кэшированные страницы в гугле, которых уже реально нет.
    Ответ написан
    Комментировать
  • Windows firewall почему не блокирует по ip?

    @res2001
    Developer, ex-admin
    Кроме стандартных настроек:
    1.правило должно быть на входящий трафик (на сколько я понял из вопроса вы блокируете входящие запросы);
    2.правило должно быть включено;
    3.в правиле должен быть выбран правильный профиль фаервола (тот который используется виндой);
    4.фаервол должен быть включен (по моему в виндовом сервере он по умолчанию выключен)
    Ответ написан
    1 комментарий
  • Изменяю значение по ссылке, в чем моя ошибка?

    @res2001
    Developer, ex-admin
    К вашему вопросу отношения не имеет, но:
    В main вы выделяете память для массива из 0 элементов.
    int N=0;
    char str[N];
    Как думаете сколько памяти выделится под этот массив?
    Еще вы, видимо, считаете, что инкрементируя N вы увеличиваете размер массива? Это не так - увеличивая N вы никак не влияете на str.

    PS: создается впечатление, что VLA для новичков - это зло.
    Ответ написан
    5 комментариев
  • Какие книги почитать про программирование для GNU/Linux?

    @res2001
    Developer, ex-admin
    То что встречал по make в интернете:
    1. "The GNU make book" на английском.
    2. "Управление проектами с помощью GNU make" на английском, так же есть ее перевод энтузиастами, лежит где-то на гитхабе в "исходниках" на LaTex
    В принципе для достаточно продвинутого написания makefile этого будет достаточно.
    Ответ написан
    Комментировать
  • Как вытащить указатель на окно в перехваченной функции EnumWindows?

    @res2001
    Developer, ex-admin
    Нужно знать что там закодировано.
    Обычно это указатель на какую-либо структуру.

    И почему не так:
    PNT_ENUMWINDOWS TrueEnumWindows = ::EnumWindows;
    ?
    Вы не используете /DEFAULTLIB для сборки?
    Ответ написан
  • Как в реляционных СУБД работать с зависимыми (виртуальными) отношениями, можно ли с ними использовать внешние ключи?

    @res2001
    Developer, ex-admin
    Гуглите про нормализацию базы данных.
    1.Вам нужно вынести name в отдельную таблицу, например назовем ее emploee, в которой будет просто список имен, возможно с какой-либо другой информацией и id, уникальный для каждого имени.
    2.Тогда в SAL поля name не будет, а будет id_emploee
    3.Меняете имя в таблице employee, автоматически оно поменяется везде, т.к. везде у вас будет фигурировать только id_emploee, а не само имя.

    Соответственно, там где нужно имя, нужно в запросах делать join с таблицей employee. Но в запросе из примера, можно и не делать join, а группировать по id_emploee, что будет работать гораздо быстрее, чем группировка по текстовому полю.
    Ответ написан
  • Как сделать чтобы устройства одной сети видели устройства другой?

    @res2001
    Developer, ex-admin
    Вообще в вашей схеме сразу напрашивался вариант LAN-LAN, даже без всех ваших заморочек.
    Нагрузка будет, да, но свои 100 Мб/с ваш роутер выдаст. Это, на самом деле, не очень то и нагрузка по нынешним временам.
    Возможно, если вы станете вещать видеопотоки одновременно со всех 3 DLNA, то вам не хватит пропускной способности роутера.
    Любая другая схема точно так же даст нагрузку на этот роутер - обойти его не получится.
    Ответ написан
  • Как правильно разобраться с bsod?

    @res2001
    Developer, ex-admin
    srv2.sys - системный драйвер. Попробуйте что-нибудь из средств восстановления ОС. Например:
    sfc /scannow
    Ответ написан
  • Вылеты игр без причин. Проблема с видеокартой?

    @res2001
    Developer, ex-admin
    Если бы дело было в ОЗУ, то вылетали бы все подряд игры, да и не игры то же, и винда бы сама по себе падала.
    Начните с замеров температуры проца, чипсета, видяхи, во время простоя, во время игры. Сравните температуру на разных играх.
    Смените термопасту везде где сможете, проверьте все кулеры, особено на ЦП, БП и видео. Корпусные не столь важны, хотя, если Ezhyg прав, то возможно, хорошо бы поставить дополнительный кулер на корпус, а то и два (на вдув и выдув).
    Ответ написан
    1 комментарий
  • Unittests в Qt, как правильно организовать структуру проекта?

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

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

    @res2001
    Developer, ex-admin
    Преобразовывайте все 4 поля в строку, конкатенируйте полученные строки, по полученной строке стройте индекс.
    Ответ написан
    Комментировать