Nano Hash - криптовалюты, майнинг, программирование

InternetGetConnectedState, и его не следует использовать из оператора службы из MSDN.

Я программирую локальную службу Windows, используя C++ и WinAPI. Из этой службы мне нужно знать, доступно ли подключение к Интернету (в целом), поэтому я придумал InternetGetConnectedState API, но затем, прочитав MSDN, я нашел это в разделе "Примечания":

Кроме того, его не следует использовать из сервиса.

Что ж, "спасибо", Майкрософт!

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

PS. Я не хочу использовать ping-подход, потому что, очевидно, нет никакого способа узнать, что сайт, который я пингую, работает, поэтому он открывает целую новую банку червей.


Ответы:


1

Как правило, вам не нужно заботиться о том, доступен ли Интернет, вы просто пытаетесь подключиться к сайту и устраняете любые сбои.

03.07.2012
  • Я знаю. В моем случае это сэкономит много циклов ЦП, если я буду знать, что подключение к Интернету установлено заранее. Опять же, смысл этого вопроса в том, почему этот API плох для сервиса и какова альтернатива? 04.07.2012
  • API плохо подходит для сервиса, потому что он предлагает подключиться к Интернету по телефонной линии или работать в автономном режиме. 04.07.2012
  • ХОРОШО. Это имеет смысл. Знаете ли вы какие-либо альтернативы? 04.07.2012
  • Попробуйте подключиться и обработать сбой. Любой другой метод вызовет состояние гонки, так как состояние может измениться между вашей проверкой и попыткой его использования. 04.07.2012
  • Да, я понимаю это, но это не так просто. Вот быстрый пример. В моей службе, если я знаю, что подключение к Интернету недоступно, я могу перенести повторную попытку через некоторое время (например, через 30 секунд), но если ошибка возникла из-за того, что сам веб-сервер не может обработать запрос, я d перепланировать повторную попытку после более длительной паузы (например, 10 минут). Итак, как вы справляетесь с этим при вашем подходе? Это приносит совершенно новую банку червей (ошибки сокетов и т. д.) 06.07.2012
  • Предположительно сервер выйдет из строя с HTTP-статусом 500, что легко отличить от сбоя подключения. 07.07.2012
  • ХОРОШО. Я признаю, что нет простого способа сделать это ... не то, чтобы я знал на данный момент ... поэтому я буду придерживаться вашего ответа. 07.07.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..