diff --git a/docs/en/md/Instructions/TCP.md b/docs/en/md/Instructions/TCP.md index d439f16fd7..c59a306fc1 100644 --- a/docs/en/md/Instructions/TCP.md +++ b/docs/en/md/Instructions/TCP.md @@ -7,4 +7,19 @@ sidebar_class_name: TCP # TCP (Client) -This section is dedicated to the library for working with the TCP. On this page, all the steps necessary to start working are described \ No newline at end of file +This section is dedicated to the library for working with the TCP. On this page, all the steps necessary to start working are described + +## About implemented methods + +This library provides several ready-made methods for working as a TCP client. The standard scheme of interaction with the server is as follows: + + 1. The object is created and connected to the server using the `CreateConnection` function. The connection string in the format `
:` is passed there. + 2. If necessary, a message can be sent to the server using the `SendBinaryData` and `SendLine` functions + 3. To receive data from the server, the `ReadBinaryData` and `ReadLine` functions are used. They have different parameters to limit the received data by size, token and waiting for input (timeout) + 4. At the end of work it is desirable to explicitly terminate the connection using the `CloseConnection` function + +For a simple scenario with standard settings, there is also the `ProcessRequest` function - it sends data to the specified address and waits for a response, finishing reading when the standard `\\n` token is found. It is also the only function that is available in the CLI version of the OPI + +## Compatibility + +Technically, the client implementation is a Native component in Rust. It comes in a zip archive format, and, in theory, should work on all available platforms: x86 and x64 Windows and Linux. The actual testing was done on Windows x64 and, cossentially (via OneScript), on Linux x64 \ No newline at end of file diff --git a/docs/ru/md/Instructions/TCP.md b/docs/ru/md/Instructions/TCP.md index cdb810ee7a..654c8525b3 100644 --- a/docs/ru/md/Instructions/TCP.md +++ b/docs/ru/md/Instructions/TCP.md @@ -7,4 +7,19 @@ sidebar_class_name: TCP # TCP (Клиент) -Этот раздел посвящен библиотеке для работы с протоколом TCP. На данной странице описаны все действия, необходимые для полноценного начала работы \ No newline at end of file +Этот раздел посвящен библиотеке для работы с протоколом TCP. На данной странице описаны все действия, необходимые для полноценного начала работы + +## О реализованных методах + +Данная библиотека предоставляет несколько готовых методов для работы в качестве TCP клиента. Стандартная схема взаимодействия с сервером выглядит следующим образом: + + 1. Создание объекта и подключение к серверу производится при помощи функции `ОткрытьСоединение`. Туда передается строка подключения в формате `<адрес>:<порт>` + 2. При необходимости, серверу можно отправить сообщение при помощи функций `ОтправитьДвоичныеДанные` и `ОтправитСтроку` + 3. Для получения данных от сервера, используются функции `ПрочитатьДвоичныеДанные` и `ПрочитатьСтроку`. Они имеют различные параметры для ограничения получаемых данных по размеру, маркеру и ожиданию ввода (таймауту) + 4. При окончании работы желательно явно завершать соединение при помощи функции `ЗакрытьСоединение` + +Для простого сценария со стандартными настройками, также существует функция `ОбработатьЗапрос` - она отправляет данные на указанный адрес и ждет ответа, завершая чтение при нахождении стандартного маркера `\\n`. Также это единственная функция, которая доступна в CLI версии ОПИ + +## Совместимость + +Технически, реализация клиента представляет из себя Native компоненту на Rust. Она поставляется в формате zip-архива, и, теоретически, должна работать на всех доступных платформах: x86 и x64 Windows и Linux. Фактическое тестирование проводилось на Windows x64 и, коссвенно (через OneScript), на Linux x64 \ No newline at end of file diff --git a/service/dictionaries/en.json b/service/dictionaries/en.json index f24bab84d5..8a1e0ed3a3 100644 --- a/service/dictionaries/en.json +++ b/service/dictionaries/en.json @@ -7723,5 +7723,6 @@ "Работа с Twitter подразумевает работу с двумя API - v1 (1.1) и v2, которые, при этом, не относятся к разным видам действий, но просто являются версиями друг друга. Несмотря на то, что Twitter настаивает на использовании v2, вышло так, что некоторые механизмы (в частности механизм загрузки файлов) в ней так и не появилися. Поэтому, даже для создания обычного твита с картинкой необходима работа с обеими версиями API, а, как следствие, двойной набор авторизационных данны. Этот набор описан в функции": "Working with Twitter involves using two APIs - v1 (1.1) and v2, which are not separate types of actions but simply different versions of the API. Despite Twitter's preference for v2, it turned out that some mechanisms (such as the file upload mechanism) did not appear in it. Therefore, even for creating a regular tweet with an image, you need to work with both API versions, resulting in a double set of authentication data. This set is described in the function", "Не рекомендуется использовать методы служебных модулей в других местах вашей конфигурации (если вы собираетесь обновляться до новых версий в дальнейшем). Для сохранения обратной совместимости, количество/назначение параметров и типы возвращаемых значений для методов работы с API не изменяются, но это не применимо к служебным модулям, которые могут изменяться как угодно для оптимизации и дополнения под новые нужды. Если вам необходим функционал из служебных модулей, рекомендуется скопировать его себе отдельно": "It is not recommended to use the methods of utility modules in other parts of your configuration (if you plan to update to new versions in the future). To maintain backward compatibility, the number/purpose of parameters and the return types for API interaction methods do not change, but this does not apply to utility modules, which can be modified in any way for optimization and adaptation to new requirements. If you need functionality from the utility modules, it is recommended to copy it separately", "Ввести домееное имя и URL обработчика перенаправлений. Тут нужно отметить, что данный механизм создания приложений - новый. Еще недавно приложения VK создавались иначе и иметь redirect_url для них было не нужно. На данный момент не совсем понятно, зачем он нужен нам для серверного приложения - просто такого понятия как серверное приложение у VK теперь нет. Теоретически, туда можно вписать что угодно - для работы с библиотекой в получении обратных данных нет необходимости. Однако, с течением времени, это может измениться": "Enter the domain name and the URL of the redirect handler. It's worth noting that this mechanism for creating VK applications is new. Until recently, VK applications were created differently, and having a redirect URL was unnecessary. At the moment, it's not entirely clear why it's needed for our server application - VK no longer distinguishes server applications as such. Theoretically, you can enter anything there - there is no need for receiving callback data to work with the library. However, this may change over time", -"Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение": "The list of necessary data in the form of a structure is contained in the function *GetStandardParameters()*. You can specify parameter values directly within it or pass them as a structure when calling any other library methods as an optional parameter *Parameters* (the last one in all library methods). In the latter case, the standard parameters will be overwritten by the ones passed during the method call. Only the data with matching keys will be overwritten. If a parameter exists in the standard set but was not passed during the method call, it will retain its default value" +"Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение": "The list of necessary data in the form of a structure is contained in the function *GetStandardParameters()*. You can specify parameter values directly within it or pass them as a structure when calling any other library methods as an optional parameter *Parameters* (the last one in all library methods). In the latter case, the standard parameters will be overwritten by the ones passed during the method call. Only the data with matching keys will be overwritten. If a parameter exists in the standard set but was not passed during the method call, it will retain its default value", +"Обработать запрос":"Process request" } \ No newline at end of file diff --git a/src/ru/OPI/src/CommonModules/OPI_TCP/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_TCP/Module.bsl index 401fe8e3d3..00affeba8d 100644 --- a/src/ru/OPI/src/CommonModules/OPI_TCP/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_TCP/Module.bsl @@ -190,7 +190,7 @@ КонецФункции -// ОбработатьЗапрос +// Обработать запрос // Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки // // Параметры: