IPConnection.ConnectUSR1

From SunFlurry wiki
Jump to: navigation, search
  ConnectUSR1 (Установка соединения)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Нет

Функция производит соединение TCP/IP с удаленным сервером по внутреннему протоколу системы. После соединения, обычно следующим шагом является объявление протокола USR1. При установке соединения всегда используется неблокирующий режим сокета, режим может быть изменен сразу после соединения с помощью атрибута IsBlocking.

Синтаксис

IPConnection.ConnectUSR1(<Адрес соединения (STRING)>,<Пароль USR1 соединения (STRING)>,<Тип соединения (INT)>=0):<Новое соединение (IPOBJECT)>

Аргументы

  • <Адрес соединения (STRING)> - Адрес соединения задается в виде <Доменное имя сервера, адрес IPv4 или IPv6>[:<Номер порта>] (примеры: 127.0.0.1:80, en.wikipedia.org:443, москва.рф:443, ::1=80). При указании IP адреса (xxx.xxx.xxx.xxx или xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), можно использовать квадратные скобки [, ] для отделения IP адреса от номера порта. Номер порта можно указывать после знака : или знака =, для IPv6 адресов можно использовать только знак = или использовать квадратные скобки, как разделитель, так как : занят для указания элементов адреса (примеры: 127.0.0.1=80, [::1]:443). Если номер порта в адресе не задан, используется порт 13251. Доменное имя будет автоматически закодировано в формат Punycode, если в нем присутствуют международные символы.
  • <Пароль USR1 соединения (STRING)> - Аргумент задает пароль для соединения, международные символы не поддерживаются, длина пароля может быть произвольной.
  • <Тип соединения (INT)> - (необязательный аргумент) Указывает на тип (протокол) соединения. Нужно заметить, что если аргумент адрес соединения использует нотацию IPv6 или доменное имя возвратит только IPv6 адрес (у сервера отсутствует IPv4 адрес), значение этого аргумента будет проигнорировано и будет использован протокол IPv6, и наоборот, если тип соединения подразумевает IPv6, однако можно осуществить соединение только на IPv4, аргумент будет проигнорирован. Чтобы узнать, по какому протоколу осуществлено соединение, можно использовать атрибут IsIPv6. Доступны следующие значения аргумента:
    • 0 (по умолчанию) -- Будет использован протокол IPv4
    • 1 -- Будет использован протокол IPv6

Возвращаемое значение

Возвращается новый объект IP. В случае, если соединение было успешным, объект соединен, иначе объект неактивен.

Примеры

//Пример соединения и инициации протокола USR1
Сокет:=IPConnection.ConnectUSR1(Сервер,Пароль);
If Сокет.IsConnected() Then
  If not Сокет.SendCmd("USR1") Then
    Message("Сервер не принял режим USR1 (1)!","!");
    Exit 0;
  EndIf;
  Комм:=Сокет.ReceiveCmd();
  If Комм="BUSY" Then
    Message("Сервер занят!","!");
    Exit 0;
  EndIf;
  If Комм<>"OK  " Then
    Message("Сервер не принял режим USR1 (2)!","!");
    Exit 0;
  EndIf;
  ...
EndIf;