Обнаружение сетевого подключения в Windows с C ++, отказ при очистке [дубликат]

*args и **kwargs: позволяют передавать переменное количество аргументов функции.

*args: используется для отправки списка аргументов переменной длины без ключевого слова в функцию:

def args(normal_arg, *argv):
    print ("normal argument:",normal_arg)

    for arg in argv:
        print("Argument in list of arguments from *argv:", arg)

args('animals','fish','duck','bird')

Будет выдавать:

normal argument: animals
Argument in list of arguments from *argv: fish
Argument in list of arguments from *argv: duck
Argument in list of arguments from *argv: bird

**kwargs*

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

def who(**kwargs):
    if kwargs is not None:
        for key, value in kwargs.items():
            print ("Your %s is %s." %(key,value))

who (name="Nikola", last_name="Tesla", birthday = "7.10.1856", birthplace = "Croatia")  

Производит:

Your name is Nikola.
Your last_name is Tesla.
Your birthday is 7.10.1856.
Your birthplace is Croatia.
3
задан mentat 20 January 2010 в 18:16
поделиться

3 ответа

Возможно, вы захотите проверить API сервера системных событий (SENS) http://msdn.microsoft.com/en-us/library/cc185680 (VS.85) .aspx

Я на самом деле не использовал его, но похоже, что он передает события, которые вы ищете.

EDIT:

У WMI, похоже, есть вся необходимая информация о различных сетевых подключениях и изменениях состояния. Он также имеет асинхронную модель событий, которая может использоваться для получения уведомлений. Хитрость, я полагаю, генерирует правильный запрос WMI для получения требуемой информации. Этот блог выглядит как правильный тип запроса, и этот MSDN объясняет, как обрабатывать события асинхронно.

2
ответ дан Ruddy 25 August 2018 в 08:33
поделиться

Эта ссылка MSDN дает очень подробный пример того, как записывать события на WMI с помощью COM. В этом примере на самом деле не фиксируются сетевые события, но я считаю, что если вы включите правильный запрос, это сработает.

(здесь много кода, поэтому я не копирую его в ответ) http://msdn.microsoft.com/en-us/library/aa390425%28v=vs.85%29.aspx

0
ответ дан FuzzyAmi 25 August 2018 в 08:33
поделиться
  • 1
    И - с помощью этого встроенного инструмента вы можете выполнять WMI-запросы без необходимости запускать код вокруг них: (запустить из командной строки) wbemtest.exe – FuzzyAmi 11 May 2014 в 17:32

Я не знаю, какой протокол вы используете, и можете ли вы управлять пунктом назначения, но в этом случае получатель может опросить повторную попытку. Назначение лучше знает, что оно получило, поэтому оно может дать полученное количество байтов как смещение для повторной передачи.

0
ответ дан stefaanv 25 August 2018 в 08:33
поделиться
  • 1
    Спасибо, но я могу продолжить переход с того места, где он был успешно удален. Но я хотел бы сделать это, как только сеть / Интернет будет доступен. Поэтому я должен определить доступность сети в зависимости от события. – mentat 20 January 2010 в 14:47
Другие вопросы по тегам:

Похожие вопросы: