Как проверить, что туннель s sh активен и подключен? - PullRequest
0 голосов
/ 09 марта 2020

Я хочу как-то проверить, подключен ли туннель s sh, и я могу использовать его с компонентом IMAP.

Здесь я создаю туннель:

tunnel := chilkat.NewSocket()
tunnel.SshOpenTunnel("ip", 22)
tunnel.SshAuthenticatePw("username", "password")

И в какой-то момент Я хочу проверить его, если он все еще открыт.

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

imap.UseSshTunnel(tunnel)

и

tunnel.IsConnected()

Но оба вернули true ..

Как я могу это проверить?

следующее свойство HeartbeatMs из chilkat

свойство: HeartbeatMs Количество миллисекунд между периодами c Пульс обратного вызова для блокировки операций сокета (подключение, принять, DNS-запрос, отправить, получить). Установите это в 0, чтобы отключить события сердцебиения. Значением по умолчанию является 1000 (т.е. 1 обратный вызов пульса в секунду).

1 Ответ

0 голосов
/ 09 марта 2020

установить тайм-аут чтения на ненулевое значение

отправить команду N OOP на сервер imap

проверить, успешно ли чтение, есть ли ошибка или таймаут

...