Где взять спецификацию для keep-alive в сокетах в .NET? - PullRequest
3 голосов
/ 24 июля 2010

Я пытаюсь выяснить, как именно keep-alive работает в .NET, но ссылка с здесь не работает. Кто-нибудь может опубликовать ссылку со спецификацией?

Что я ищу:

  • Я хотел бы знать, как часто отправляются пакеты keep-alive.

  • Должен ли я установить KeepAlive с помощью команды:

    s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

    только на стороне сервера или даже клиент должен установить этот флаг?

Ответы [ 2 ]

6 голосов
/ 24 июля 2010

Не уверен, что это то, что вы ищете, но перечисление SocketOptionName имеет член KeepAlive, как видно здесь .

Из документации вы быиспользуйте это так:

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
2 голосов
/ 24 июля 2010

У меня есть запись в моем блоге о сообщениях активности.Короткий ответ: обеим сторонам нужен какой-то тип активности активности, но если у вас есть «опрос», инициированный с одной стороны, то он может действовать как режим активности.Кроме того, я рекомендую встроить keepalive прямо в протокол, а не использовать настройку сокета.

В своей записи блога я не буду вдаваться в подробности настройки сокета keepalive, поскольку считаю, что это неочень полезно (подробности см. в блоге).

Обратите внимание, что «глобальный параметр реестра» был изменен в Windows 2000. Теперь его можно изменить для каждого подключения.Тем не менее, я до сих пор не рекомендую использовать его для поддержки активности (подробности см. В моем блоге).

...