Difference between revisions of "OnUsr1Connection"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:52, 7 February 2021
OnUsr1Connection (Внешние события) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Прерывающее событие, возникающее при соединении внешней программы по стандартному USR1 протоколу к заранее инициализированному серверу USR1 соединений. Функция-обработчик далее может производить обмен информацией с помощью функций TCP, используя TCP Объект. Событие не может прервать транзакцию в корневом потоке (оно будет ожидать ее окончания). Внутренний USR1 протокол позволяет совершать соединения клиентов с сервером, обмениваться файлами и любой другой информацией. Разработчик не имеет доступа только к части приветствия и обмена паролями, вне приветствия, он может использовать протокол для обмена любой информацией любым способом по своему усмотрению. Если необходимо осуществить соединение без приветствия USR1, можно пользоваться функциями Listen, ConnectRaw и пр.
Более подробное описание протокола ищите в статье USR1 протокол.
Синтаксис
OnUsr1Connection(<TCP Объект (IP Connection)>,<Команда клиента (STRING)>,<Список принятых файлов (LIST)>)
Аргументы
<TCP Объект (IP Connection)>
- Объект TCP, для которого осуществлено соединение.<Команда клиента (STRING)>
- Дополнительная строковая команда, поступившая от клиента (см. описание протокола)<Список принятых файлов (LIST)>
- Если клиент отсылал какие-либо файлы, они будут помещены в системный каталог %TEMP%, полное имя каждого из файлов добавляется в список принятых файлов. После окончания выполнения события, файлы будут автоматически удалены.
Примеры
Function OnUsr1Connection(Соединение,Параметр,спФайлы) If Параметр="GETPRINTERS" Then //Запрос на список принтеров от клиента Соединение.SendCmd("OK "); //Получаем список принтеров Стр:=GetDefaultPrinter; Стр0:=Uppercase(Стр); Try aList:=GetInstalledPrinters(); For i:=1 To aList.Size() Do If Стр0<>Uppercase(aList.Get(i)) Then Стр:=Стр+?(Стр<>"",_NEWLINE)+aList.Get(i); EndIf; EndDo; Except EndTry; Соединение.SendStr(Стр); Соединение.Disconnect(); Exit; ElseIf ... EndIf; //Неизвестный режим, разрываем связь Соединение.SendCmd("BAD "); Соединение.Disconnect(); EndFunction;