новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к контенту: TCP/UDP клиент/сервер. Native API внешняя компонента.

    • #1
    • 12.03.2021 17:29
    0
    • #2
    • 12.03.2021 17:34
    0
    Добрый день, Дмитрий. Попыталась воспользоваться вашей компонентой, она подключилась. Но на клиенте при отправке сообщения не отрабатывает внешнее событие. В какую сторону копать, что могло пойти не так?
    • #3
    • 12.03.2021 17:41
    0
    Добрый день. Наверное самая распространенная, переменную с объектом компоненты не объявили как переменную форму.

    //ОбъектКомпоненты должен быть объявлен как переменная формы
    &НаКлиенте
    Перем ОбъектКомпоненты;


    Это нужно чтобы объект компоненты не был удален после открытия порта
    • #4
    • 13.03.2021 21:16
    0
    Объявлена, т.к. это написано в статье, которую я прочитала ).
    • #5
    • 13.03.2021 21:22
    0
    Компьютеры разные, на котором открыли порт и с которого отправляете сообщение? Айпи адрес и порт правильно указали?
    • #6
    • 14.03.2021 13:34
    0
    Вы знаете, наверное я не правильно поняла назначение вашего инструмента. Внешнее событие вы генеруируете сами отправив сообщение на логкальный порт 127.0.0.1. По сути ваш инструмент для обмена между клиентом и серевром 1С. А я хотела его использовать для обращения из 1С к внешнему устройству по протоколу TCP/IP И ожидала во внешнем событии увидеть ответ от этого устройства, на отправленное сообщение. Я теперь верно поняла суть, или что-то недопонимаю опять? Ваш инструмент можно использовать для обращения к внешним устройствам из 1С?
    • #7
    • 14.03.2021 13:42
    0
    Внешняя компонента позволяет открыть любой TCP или UDP порт через сокет. Если вы сможете отправить из внешнего устройства по TCP или UDP какое-то сообщение, то 1С сгенерирует внешнее событие.
    Также компонента позволяет отправить любое сообщение по TCP или UDP, но ответ от него автоматически не получает.
    • #8
    • 14.03.2021 14:16
    0
    Все равно не понимаю. Не пойму следующее - я не правильно использую технологию и по ней отправив сообщение на внешнее устройство, в том случае если устройство отвечает, то 1С сгенерирует внешнее событие, в котором я смогу обработать ответ.
    Или ответ от устройства должен быть отправлен так, как в вашей процедуре ТЕСТ
    //общий модуль Сервер
    Функция Тест() Экспорт
    //создание объекта внешней компоненты
    ПодключитьВнешнююКомпоненту("Обработка.ВК.Макет.TCP_UDP", "ВК");
    ОбъектКомпонентыКлиент = Новый ("AddIn.ВК.TCP_UDP");
    ОбъектКомпонентыКлиент.ЭтоTCP = Истина;
    ОбъектКомпонентыКлиент.IP = "127.0.0.1";
    ОбъектКомпонентыКлиент.Порт = 1111;

    и никак иначе? Менять Api устройства я не могу.
    В этом случае в этой технологии для меня не хватает метода Читать или Слушать.

    Моя задача следующая: отправить json по протоколу TCP из 1С на внешнее устройство подключенное на сервере в сети по технологии Ethernrt и прочить ответ от устройство, также JSON.

    Может ли мне ваш инструмент с этим помочь? Или в нем не хватает метода?
    • #9
    • 14.03.2021 14:20
    0
    Отправить можно. Получить ответ нет.
    • #10
    • 14.12.2021 08:17
    • Отредактировано: 14.12.2021 08:20:31
    0
    Купил ВК. Отправляю сообщение, в итоге ничего не отправляется + не видно ни одного пакета, как будто обработка даже не подключилась к IP адресу который я указываю. Как ВК открывает сокет, через winsock?
    • #11
    • 14.12.2021 08:28
    0
    Да, через winsock. Вы куда отправляете данные? На внешнее устройство? Скорее всего не будет работать. Это компонента для отправки сообщения с сервера 1С на клиент 1С. То есть на клиенте открывается сокет для прослушивания, а с сервера выполняется подключение к этому сокету.
    • #12
    • 14.12.2021 08:43
    0
    Отправить сообщение в Трассир не получится?
    • #13
    • 14.12.2021 08:48
    0
    Данной компонентой нет. А есть описание как отправлять сообщения в Трассир? Давно было желание написать полноценный TCP-клиент, но не знал на чем потренироваться.
    • #14
    • 14.12.2021 08:56
    0
    https://www.dssl.ru/files/trassir/manual/ru/setup-pos-dsslxml.html вот тут есть пример. Я пытался с помощью wincock отправлять но не получается
    • #15
    • 14.12.2021 08:56
    0
    А чем отличается полноценный TCP- клиент от простой отправки через socket?
    • #16
    • 14.12.2021 08:58
    0
    Сейчас пытаюсь вот так отправить

    SOCKADDR_IN addr;
    addr.sin_port = htons( port_ );
    addr.sin_addr.s_addr = inet_addr(address_);
    addr.sin_family = AF_INET;

    SOCKET Connection = socket(AF_INET, SOCK_STREAM, NULL); // TCP socket

    if (Connection == INVALID_SOCKET){
    return "socket() error: " + std::to_string(WSAGetLastError());
    }
    • #17
    • 14.12.2021 08:59
    0
    но возвращает ошибку 10061
    • #18
    • 14.12.2021 09:38
    0
    Может быть брандмауэр блокирует?
    Если ошибка возникает при подключении, то возможно и эта компонента будет работать. Но она не позволяет получить ответ от устройства, только отправить строковые данные.
    Устройство пингуется?
    • #19
    • 14.12.2021 09:54
    0
    Да, пингуется. Но вот Telnetom не подключается
    • #20
    • 21.12.2021 20:59
    0
    Спасибо за компоненту, очень помогла.
    • #21
    • 16.02.2022 08:30
    0
    Добрый день. У нас есть драйвер в основной базе (так сказать TCP сервер). Мы можем внедрить Вашу компоненту в мобильное приложение 1С и отправлять запросы на TCP сервер, будет ли работать?
    • #22
    • 16.02.2022 08:34
    0
    Добрый день. Только с доработкой компоненты, исходники тоже выложены.
    • #23
    • 16.02.2022 08:57
    0
    То есть простую команду типа <"SCN:" + ШК + Символы.ПС> Ваша компонента не сможет отправить?
    • #24
    • 16.02.2022 08:58
    0
    zerstur
    отправить


    Соответственно на ip адрес с необходимым портом
    • #25
    • 16.02.2022 08:59
    0
    Компонента может отправить любые строковые данные, в какой кодировке уже не помню. Но она разработана для обычной платформы. Для мобильной потребуется доработка.
    • #26
    • 18.04.2022 22:40
    0
    micvant
    https://www.dssl.ru/files/trassir/manual/ru/setup-pos-dsslxml.html


    Скажите, Вы решили свою проблему? С помощью данной компоненты?
    Сейчас решаю аналогичную задачу.
    • #27
    • 26.07.2022 20:26
    0
    Если интересует TCP-клиент с возможностью получения ответа от сервера, то смотрите эту разработку https://1clancer.ru/catalog/4751
    • #28
    • 09.02.2023 14:52
    0
    Добрый день! Почитал описание компоненты, почитал обсуждение но так до конца и не понял.
    У меня есть следующая задача, мне нужно из 1С отправлять текстовые сообщения в стороннее приложение по TCP на определенный IP и порт. Я подключил компоненту, отправляю простое сообщение строку "test". Смотрю с помощью WireShark, что пакеты по TCP приходят, но данные в них нет. В чем может быть причина?
    • #29
    • 09.02.2023 14:57
    • Отредактировано: 09.02.2023 14:57:25
    0
    ..
    • #30
    • 09.02.2023 14:58
    0
    Добрый день. Скорее всего дело в кодировке. Данная компонента используется для отправки сообщений из одной 1С в другую 1С, например с сервера на клиента. Если нужен TCP-клиент, то лучше купите эту компоненту https://1clancer.ru/catalog/4751
Страницы:12
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться