Я настроил свой сокет C # .Net, используя
m_clientSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, Convert.ToInt32(True))
m_clientSocket.IOControl(IOControlCode.KeepAliveValues, SIO_KEEPALIVE_VALS, result)
Мои настройки должны отправляться каждые 30 секунд, а затем отправляться каждые 10 секунд, когда первое подтверждение не получено.
Iможет видеть поддержание активности и поддержание активности ack-флагов, отправляемых и получаемых на мой сервер, когда соединение установлено.
Когда соединение разорвано, я вижу, что мои сообщения о поддержании активности отправляются и подтверждение не принимается.Я вижу, что отправляемые контрольные сообщения изменили свое поведение в соответствии с моими настройками, то есть они отправляются каждые 10 секунд, а не каждые 30 секунд.
Я ожидал, что произойдет какое-то событие, такчто я могу ответить на разрыв (т.е. закрыть сокет, а затем начать пытаться утилизировать его).
Кто-нибудь может сказать мне, как узнать, что Keep Alives заметила, что соединение разорвано?
Спасибо, Ady