База знаний / Справочник TiOS / Разработка (TiOS) / Справочник по программированию / Объекты / Объект sock. / Свойства, методы и события
.tlshandshake - метод
| Назначение: | Для текущего выбранного сокета (выбор выполняется через sock.num) запускает процедуру TLS-рукопожатия, чтобы перевести сокет на зашифрованное соединение. |
| Синтаксис: | sock.tlshandshake(byref server_name as string) as enum |
| Возвращает: |
|
| См. также: | Transport Layer Security (TLS), Установка защищённого соединения |
| Параметр | Описание |
| server_name | Полное доменное имя (FQDN) выбранного сервера. |
Подробности
Единственный параметр метода, server_name, требует полного доменного имени (то есть всего, что идёт после "https://" до первой косой черты). Если сверять имя сервера с сертификатом не нужно, передайте пустую строку - это удобно при подключении непосредственно к IP-адресу.
Попытка вызвать sock.tlshandshake на сокете, отличном от того, на котором выполнялся sock.tlsinit, вернёт PL_TLS_ERROR_IN_USE.
Кроме того, вызов sock.tlshandshake вернёт PL_TLS_REJECTED в следующих случаях:
- Выбранный протокол не TCP (sock.protocol <> PL_SOCK_PROTOCOL_TCP)
- TCP-соединение не является исходящим (sock.state <> PL_SST_EST_AOPENED)
- sock.tlsinit не выполнялся ни на одном сокете (sock.tlscurrentnum = 255)
Даже если sock.tlshandshake вернул PL_TLS_SUCCESS, создать защищённое соединение может не получиться по ряду причин. Окончательным и достоверным признаком успешной установки TLS-канала служит переход sock.state в PL_SST_EST_TLS.