Skip to content

Commit 50686fa

Browse files
committed
Update OSClientServer.OneScriptClientServer.ThirdPartyClientMode.html
1 parent 7cfba70 commit 50686fa

1 file changed

Lines changed: 112 additions & 2 deletions

File tree

docs/OSClientServerRu/OSClientServer.OneScriptClientServer.ThirdPartyClientMode.html

Lines changed: 112 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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);
8081
TCPСоединение.Закрыть();
8182

83+
//========================================================================
84+
8285
// Пример с нативным клиентом односкрипта. Код сервера.
8386
Перем КС;
8487
Перем ТекстСообщения;
@@ -142,7 +145,6 @@ <H4 class=dtH4>Пример</H4>
142145
КС.РежимСтороннегоКлиента = Истина;
143146

144147
ТекстСообщения = ТекстСообщения();
145-
Клиенты = Новый Массив();
146148

147149
// Запустим сервер
148150
TCPСервер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

Comments
 (0)