@@ -53,6 +53,7 @@ <H4 class=dtH4>Пример</H4>
5353< P > < PRE class =code >
5454КС.РежимСтороннегоКлиента = Истина;
5555</ PRE >
56+ < li > Для пересылки строк можно применить такой код:</ li >
5657< details > < summary > Полный пример кода</ summary >
5758< P > < PRE class =code >
5859< a id ="copy1 " href ="jаvascript:// " title ="Выделяет код, копирует и снимает выделение. "> Копировать</ a > < a id ="select1 " href ="jаvascript:// " title ="Выделяет код. "> Выделить всё</ a >
@@ -79,6 +80,8 @@ <H4 class=dtH4>Пример</H4>
7980Приостановить(3000);
8081TCPСоединение.Закрыть();
8182
83+ //========================================================================
84+
8285// Пример с нативным клиентом односкрипта. Код сервера.
8386Перем КС;
8487Перем ТекстСообщения;
@@ -142,7 +145,6 @@ <H4 class=dtH4>Пример</H4>
142145КС.РежимСтороннегоКлиента = Истина;
143146
144147ТекстСообщения = ТекстСообщения();
145- Клиенты = Новый Массив();
146148
147149// Запустим сервер
148150TCPСервер1.Начать();
@@ -156,10 +158,94 @@ <H4 class=dtH4>Пример</H4>
156158</ PRE >
157159</ details >
158160< P > </ P >
159- < details > < summary > Тестовый код</ summary >
161+ < hr style ="border-color: lightgray; ">
162+ < li > Для пересылки двоичных данных (файлов) можно применить такой код:</ li >
163+ < details > < summary > Полный пример кода</ summary >
160164< P > < PRE class =code >
161165< a id ="copy2 " href ="jаvascript:// " title ="Выделяет код, копирует и снимает выделение. "> Копировать</ a > < a id ="select2 " href ="jаvascript:// " title ="Выделяет код. "> Выделить всё</ a >
162166< hr style ="border-color: lightgray; "> < DIV id ="cont2 ">
167+ // Пример с нативным клиентом односкрипта. Код клиента.
168+ TCPСоединение = Новый TCPСоединение("localhost", 3333);
169+ TCPСоединение.ТаймаутЧтения = 2000; // Чтобы соединение не висело бесконечно долго в случае сбоя принятия с сервера. Необходимая строка.
170+ Приостановить(1000);
171+ TCPСоединение.ОтправитьСтроку("Мир");
172+ Приостановить(1000);
173+ ДвоичныеДанныеОтвета = Новый Массив;
174+ // Ответы сервера размеров до 8 килобайт можно принимать и в одной строке
175+ // ДД = TCPСоединение.ПрочитатьДвоичныеДанные();
176+ // Но данные большего размера необходимо получать в таком цикле
177+ Пока Истина Цикл
178+ Попытка
179+ ДвоичныеДанныеОтвета.Добавить(TCPСоединение.ПрочитатьДвоичныеДанные());
180+ Исключение
181+ Прервать;
182+ КонецПопытки;
183+ КонецЦикла;
184+ ДД = СоединитьДвоичныеДанные(ДвоичныеДанныеОтвета);
185+ Сообщить("" + "1-" + СтрДлина(ДД) + " - " + ДД + "-" + СтрДлина(ДД));
186+ ДД.Записать("C:\444\Pic\Природа2.jpg");
187+
188+ Приостановить(3000);
189+ TCPСоединение.Закрыть();
190+
191+ //========================================================================
192+
193+ // Пример с нативным клиентом односкрипта. Код сервера.
194+ Перем КС;
195+
196+ Функция Сервер_ПриПодключенииКлиента() Экспорт
197+ СерверКлиент = КС.АргументыСобытия.Клиент;
198+ Сообщить("Подключен новый клиент. Идентификатор клиента = " + СерверКлиент.ИдентификаторКлиента);
199+ Сообщить("========================================");
200+ КонецФункции
201+
202+ Процедура Сервер_ПриПолученииСообщения() Экспорт
203+ Сообщение = КС.АргументыСобытия.Сообщение;
204+ Отправитель = КС.Отправитель;
205+ ОтправительИдентификаторКлиента = Отправитель.ИдентификаторКлиента;
206+ Если ("" + Сообщение) = "КсСообщениеТекст" Тогда
207+ Сообщить("Клиент отправил сообщение: " + Сообщение.Text + " (ИдентификаторКлиента = " + Отправитель.ИдентификаторКлиента + ")");
208+ Сообщить("========================================");
209+ ИначеЕсли ("" + Сообщение) = "КсСообщениеБайты" Тогда
210+ Сообщить("Клиент отправил файл: " + СтрДлина(Сообщение.Данные) + "-" + Отправитель.ИдентификаторКлиента + "-" + Сообщение.Данные);
211+ // Сообщение.Данные.Записать("C:\777\МойФайл.jpg");
212+ Сообщить("========================================");
213+ КонецЕсли;
214+
215+ Отправитель.ОтправитьСообщение(КС.СообщениеБайты(Новый ДвоичныеДанные("C:\444\Pic\Природа.jpg")));
216+ КонецПроцедуры
217+
218+ Процедура Сервер_ПриОтключенииКлиента() Экспорт
219+ Сообщить("Клиент отключен! Идентификатор клиента = " + КС.АргументыСобытия.Клиент.ИдентификаторКлиента);
220+ Сообщить("========================================");
221+ КонецПроцедуры
222+
223+ ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
224+ КС = Новый КлиентСерверДляОдноСкрипта();
225+
226+ TCPСервер1 = КС.TCPСервер(3333);
227+ TCPСервер1.ПриПодключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриПодключенииКлиента");
228+ TCPСервер1.ПриОтключенииКлиента = Новый Действие(ЭтотОбъект, "Сервер_ПриОтключенииКлиента");
229+ TCPСервер1.ПриПолученииСообщения = Новый Действие(ЭтотОбъект, "Сервер_ПриПолученииСообщения");
230+
231+ КС.РежимСтороннегоКлиента = Истина;
232+
233+ // Запустим сервер
234+ TCPСервер1.Начать();
235+ Сообщить("Сервер запущен");
236+
237+ // Запустим цикл обработки событий
238+ Пока КС.Продолжать Цикл
239+ КС.ПолучитьСобытие().Выполнить();
240+ КонецЦикла;
241+ </ DIV >
242+ </ PRE >
243+ </ details >
244+ < P > </ P >
245+ < details > < summary > Тестовый код</ summary >
246+ < P > < PRE class =code >
247+ < a id ="copy3 " href ="jаvascript:// " title ="Выделяет код, копирует и снимает выделение. "> Копировать</ a > < a id ="select3 " href ="jаvascript:// " title ="Выделяет код. "> Выделить всё</ a >
248+ < hr style ="border-color: lightgray; "> < DIV id ="cont3 ">
163249ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptClientServer\OneScriptClientServer\bin\Debug\OneScriptClientServer.dll");
164250КС = Новый КлиентСерверДляОдноСкрипта();
165251
@@ -224,6 +310,30 @@ <H4 class=dtH4>Смотрите также</H4>
224310 window . getSelection ( ) . removeRange ( range4 ) ;
225311 return false ;
226312 }
313+
314+ var c = document . getElementById ( 'select3' ) ;
315+ c . onclick = function ( ) {
316+ window . getSelection ( ) . removeAllRanges ( ) ;
317+ var ta5 = document . getElementById ( 'cont3' ) ;
318+ var range5 = document . createRange ( ) ;
319+ range5 . selectNode ( ta5 ) ;
320+ window . getSelection ( ) . addRange ( range5 ) ;
321+ return false ;
322+ }
323+
324+ var d = document . getElementById ( 'copy3' ) ;
325+ d . onclick = function ( ) {
326+ window . getSelection ( ) . removeAllRanges ( ) ;
327+ var ta6 = document . getElementById ( 'cont3' ) ;
328+ var range6 = document . createRange ( ) ;
329+ range6 . selectNode ( ta6 ) ;
330+ window . getSelection ( ) . addRange ( range6 ) ;
331+ try {
332+ document . execCommand ( 'copy' ) ;
333+ } catch ( err ) { }
334+ window . getSelection ( ) . removeRange ( range6 ) ;
335+ return false ;
336+ }
227337}
228338</ script >
229339</ BODY > </ HTML >
0 commit comments