gifts2017

TCPClient Внешняя компонента(Native API) + Пример работы с Asterisk

Опубликовал Алексей Ко (Жолтокнижниг) в раздел Программирование - Внешние компоненты

TCP client с поддержкой синхронных/асинхронных сокетов + пример реализации.

TCP client с поддержкой синхронных/асинхронных сокетов, получения данных в отдельном потоке и отправка их 1с в виде событий.

 

Свойства:

  • _PID/_ИДПроцесса(только чтение) - ид текущего процесса
  • _TID/_ИДПотока(только чтение) - ид текущего потока
  • _Loging/_ВестиЛог(чтение и запись) - ведение лога
  • _SendingEvents/_ОтправлятьСобытия(чтение и запись) - отправлять внешние события 1с
  • _EventBufferDepth/_РазмерОчередиСообщений(чтение и запись) - размер очереди обработки сообщений, если сообщение приходит в заполненную очередь, оно удаляется
  • _LogFile/_ЛогФайл(чтение и запись) - имя файла лога
  • RecvThID/ПотокПрослушивания(только чтение) ид потока прослушки(0 если потока не создан)
  • Server/Сервер(только чтение) - IP сервера к которому подключены
  • Port/Порт(только чтение) - порт подключения
  • Asynchronus/Асинхронный(только чтение) - флаг истина: асинхронный, ложь: синхронный
  • Connected/Подключен(только чтение) - состояние подключения
  • RecvMode/ПолучениеВОтдельномПотоке(только чтение) - флаг истина: в потоке, получение в виде внеш. событий, ложь: получение с помощью метода Получить().

Методы:

  • Строка _Type/_Тип(любое значение) - возвращает тип переданного значения
  • Строка _Properties/_Свойства(0) - список свойств компоненты
  • Строка _Methods/_Методы(0) - список методов компоненты
  • Булево _ClearLog/_ОчиститьЛог(0) - очистка лог-файла
  • Строка _GetLastError/_ПоследнаяОшибка(0) - представление последней ошибки, GetLastError + GetErrorDescription
  • Булево Connect/Подключиться(IP:строка,Порт:число,Асинфронный:булево,отдельныйПоток:булево) - подключение к сокету
  • Булево Disconnect/Отключиться(0) отключение
  • Число(целое) Send/Послать(данные: строка) - отправка строки в сокет, возвращает кол-во отправленных байт(-1 при ошибке)
  • Строка Recv/Получить(0) - получение строки из сокета
  • Булево Delay/Пауза(милисек: число) - приостанавливает поток на указанное время(мс)

Обмен сообщения происходит в ASCII + перекодировка для 1с.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка пример
.epf 178,84Kb
08.11.13
56
.epf 1.0.0.0 178,84Kb 56 Скачать
Компонента
.dll 211,50Kb
08.11.13
43
.dll 1.0.0.0 211,50Kb 43 Скачать
Исходник
.7z 26,59Kb
18.08.15
25
.7z 26,59Kb 25 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Ко (Жолтокнижниг) 13.11.13 23:23
а какого никто комментов не пишет, я знаю что есть косяки, да я выпил %)
но нужны пожелания
2. Леонид Стасюков (stilet) 01.11.14 08:47
Интересно, а компонента будет работать с управляемыми формами?
3. Алексей Ко (Жолтокнижниг) 06.11.14 09:47
Точно не знаю, но почему нет, главное чтоб не веб-клиент
4. Александр Синиченко (nytlenc) 03.04.15 08:27
Вещь очень нужная! Сделайте поддержку x64 серверов! Чтобы компоненту можно было подключить на сервере и производить подключение с помощью выполнения на стороне сервера регламентного задания без участия пользователя. Тогда ей просто цены не будет!!!
5. Алексей Ко (Жолтокнижниг) 03.04.15 16:47
(4) nytlenc, Нет мотивации на выполнение вашего пожелания. Возможно будет новый проект по интеграции с астериск, но там сервер x32. А просто так тратить время, такой возможности у меня нет. Так что увы.
6. Алексей Ко (Жолтокнижниг) 03.04.15 16:48
(4) nytlenc, Могу исходники дать, но с условием, что доработка появится на ИС.
7. A-tomic (A-tomic) 26.11.15 17:25
А что вот такие сообщения могут значить - "TCPClient : Recv: Recived mode: inThread."?
8. Павел Королев (fd13) 28.01.16 13:15
Версию под Х64 я даже приобрел бы для личных нужд...
9. legzzi Пол (legzzi) 01.03.16 00:26
как с вами связаться? требуется внедрить в УТ10.3
10. Алексей Шачнев (saa@kuzov.org) 04.03.16 14:16
(8) fd13, скажите, а какой сценарий ее использования может быть на windows x64? Для меня основная ценность в генерации внешних событий, что на сервере не работает, а клиент x64 только под linux.
11. alexey mir (unduty) 12.04.16 23:24
Как удалось сделать асинхронный режим? как удалось победить ошибку "Использование синхронных методов на клиенте запрещено!" ?
12. Алексей Ко (Жолтокнижниг) 13.04.16 11:50
(11) unduty, Асинхронно работает сама компонента (в несколько потоков) и пушит события в 1с. Это никак не относится к асинхронности самой 1с
13. Александр Кузнецов (kuzz) 09.07.16 14:53
Добрый день! Объясните пожалуйста в двух словах как пользоваться?
14. Алексей Ко (Жолтокнижниг) 25.07.16 10:51
(13) kuzz, Это обработка пример, ее основное назначение показать, как пользоваться компонентой, а также анализ событий/действий Астериска.
На закладке настройки заполняем параметры подключения к астериску, нажимаем подключиться. А дальше по закладкам смотрим инфу, нажимаем позвонить(указав/выбрав нужный номер) при желании.
15. Слава (SlavaVNL) 22.08.16 09:00
(14) Жолтокнижниг, исходный код открыт?
16. Алексей Ко (Жолтокнижниг) 22.08.16 13:00
(15) SlavaVNL, В файлах есть исходники
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа