Только чтение.
Тип: Произвольный.
Возвращает объект, заданный при установке обработчика события, для передачи в обработчик события.
Процедура ПриПодключенииКлиента() Экспорт
АргументыСобытия = МС.АргументыСобытия;
Сообщить("Клиент подключился: " + АргументыСобытия.ИдентификаторКлиента);
Сообщить("Активных клиентов: " + Сервер.КоличествоАктивныхКлиентов);
Параметр = АргументыСобытия.Параметр;
Сообщить("Параметр[Поле1] = " + Параметр["Поле1"]);
Сообщить("========================");
КонецПроцедуры
Действие = МС.Действие(ЭтотОбъект, "");
Действие.ИмяМетода = "ПриПодключенииКлиента";
Структура1 = Новый Структура("Поле1","ЧтоТоТам");
Действие.Параметр = Структура1;
Сервер.ПриПодключенииКлиента = Действие;
// В качестве клиента удобно будет использовать TCPКлиент (TCPClient) Перем МС, Сервер; Процедура ПриПодключенииКлиента() Экспорт АргументыСобытия = МС.АргументыСобытия; Сообщить("Клиент подключился: " + АргументыСобытия.ИдентификаторКлиента); Сообщить("Активных клиентов: " + Сервер.КоличествоАктивныхКлиентов); Параметр = АргументыСобытия.Параметр; Сообщить("Параметр[Поле1] = " + Параметр["Поле1"]); Сообщить("========================"); КонецПроцедуры Процедура ВывестиСообщение(Данные, ИдентификаторКлиента) Попытка РазмерДанных = Данные.ПрочитатьЦелое32(0); ДанныеСообщения = Данные.Прочитать(4, РазмерДанных); ДД = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ДанныеСообщения); ОтдельноеСообщение = ПолучитьСтрокуИзДвоичныхДанных(ДД, КодировкаТекста.UTF8); Сообщить("Сообщение от " + ИдентификаторКлиента + " (" + РазмерДанных + " байт):" + Символы.ПС + ОтдельноеСообщение); Если (Данные.Размер - 4 - РазмерДанных) > 0 Тогда ОстатокДанных = Данные.Прочитать(4 + РазмерДанных, Данные.Размер - 4 - РазмерДанных); ВывестиСообщение(ОстатокДанных, ИдентификаторКлиента); КонецЕсли; Исключение ДанныеСообщения = Данные.Прочитать(0, Данные.Размер); ДД = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ДанныеСообщения); ОтдельноеСообщение = ПолучитьСтрокуИзДвоичныхДанных(ДД, КодировкаТекста.UTF8); Сообщить("Сообщение от " + ИдентификаторКлиента + " (" + Данные.Размер + " байт):" + Символы.ПС + ОтдельноеСообщение); КонецПопытки; КонецПроцедуры Процедура СерверПолучилДанные() Экспорт АргументыСобытия = МС.АргументыСобытия; Данные = АргументыСобытия.Данные; // Данные, полученные сервером, доступны нам как тип БуферДвоичныхДанных (BinaryDataBuffer). // Если с сервером будет взаимодействовать клиент, который формирует сообщения по оговоренным заранее правилам, // появляется возможность делить данные на отдельные сообщения и кроме того знать тип данных отдельного сообщения. // Как частный случай можно на стороне клиента отправлять в сетевой поток сначала размер сообщения (четыре байта) // а затем само сообщение. В этом примере так и сделано. // Разобъем полученные сервером данные на отдельные сообщения. ВывестиСообщение(Данные, АргументыСобытия.ИдентификаторКлиента); // Отправим всем строку. Сервер.ОтправитьВсем(ПолучитьСтрокуИзБуфераДвоичныхДанных(Данные)); Сообщить("========================"); КонецПроцедуры Процедура ПриОтключенииКлиента() Экспорт АргументыСобытия = МС.АргументыСобытия; Сообщить("Клиент отключился: " + АргументыСобытия.ИдентификаторКлиента); Сообщить("Активных клиентов: " + Сервер.КоличествоАктивныхКлиентов); Сообщить("========================"); КонецПроцедуры Процедура ПриОшибкеСервера() Экспорт АргументыСобытия = МС.АргументыСобытия; Сообщить("ОшибкаСервера: " + АргументыСобытия.ОшибкаСервера); Сообщить("========================"); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\MultithreadedTCPServer\MultithreadedTCPServer\bin\Debug\MultithreadedTCPServer.dll"); МС = Новый МногопоточныйTCPСерверДляОдноСкрипта(); Сервер = МС.МногопоточныйСервер(8080); Сервер.ПриОшибкеСервера = МС.Действие(ЭтотОбъект, "ПриОшибкеСервера"); Сервер.ПриОтключенииКлиента = МС.Действие(ЭтотОбъект, "ПриОтключенииКлиента"); Сервер.СерверПолучилДанные = МС.Действие(ЭтотОбъект, "СерверПолучилДанные"); Действие = МС.Действие(ЭтотОбъект, ""); Действие.ИмяМетода = "ПриПодключенииКлиента"; Структура1 = Новый Структура("Поле1","ЧтоТоТам"); Действие.Параметр = Структура1; Сервер.ПриПодключенииКлиента = Действие; Сервер.Начать(); Пока МС.Продолжать Цикл МС.ПолучитьСобытие().Выполнить(); КонецЦикла;