---
sidebar_position: 3
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Прочитать двоичные данные 
 Читает данные из указанного соединения



`Функция ПрочитатьДвоичныеДанные(Знач Соединение, Знач МаксимальныйРазмер = 0, Знач Маркер = "", Знач Таймаут = 5000) Экспорт`

  | Параметр | CLI опция | Тип | Обяз. | Назначение |
  |-|-|-|-|-|
  | Соединение | --tcp | Произвольный | ✔ | Соединение, см. ОткрытьСоединение |
  | МаксимальныйРазмер | --size | Число | ✖ | Максимальный размер данных (байт). 0 > без ограничений |
  | Маркер | --marker | Строка, ДвоичныеДанные | ✖ | Маркер конца сообщения. Пусто > без маркера |
  | Таймаут | --timeout | Число | ✖ | Таймаут ожидания данных (мс). 0 > без ограничений |

  
  Возвращаемое значение:   ДвоичныеДанные - Полученные данные

<br/>

:::tip
При работе с бесконечным потоком входящих данных обязательно указание параметра МаксимальныйРазмер, так как бесконечное получение данных может привести к зависанию

При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае

Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
:::
<br/>

:::caution
**NOCLI!:** данный метод недоступен для использования в CLI версии
:::
<br/>


```bsl title="Пример использования для 1С:Предприятие/OneScript"
    Адрес      = "45.79.112.203:4242";
    Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
    Сообщение  = "Hello server!" + Символы.ПС;
    Данные     = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);

    OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);

    // Маркер конца сообщения для исключения ожидания конца таймаута
    Маркер    = Символы.ПС;
    Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    OPI_TCP.ЗакрытьСоединение(Соединение);
```
    



```json title="Результат"
"Hello server!\n"
```