Skip to content

Внешняя компонента для прослушивания UDP порта. Linux.

Notifications You must be signed in to change notification settings

OilUnion/UDPListenerFor1C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Не то чтобы рабочий проект. Скорее для теста, чем для реальных задач. Проблемы:

  • при отправке пакета больше 40_000 байт аварийно завершается. Ошибки не возникает при отправке пакета размера 31_500 байт;
  • при отправке русских символов аварийно завершается. Ошибка была если отправляли из Windows. Решили костылем, а именно перед отправкой закодировали в UTF8. Отправку из Linux прошел нормально.
// Подключение компоненты.
УстановитьВнешнююКомпоненту("ОбщийМакет.AddInNative");
ПодключитьВнешнююКомпоненту("ОбщийМакет.AddInNative", "CAddInNative", ТипВнешнейКомпоненты.Native);
МояКомпонента = Новый("AddIn.CAddInNative.AddInNativeUdpServer");

// Старт сервера.
МояКомпонента.Адрес = "127.0.0.1";
МояКомпонента.Порт = 12345; 
МояКомпонента.СерверСтарт();

// МояКомпонента.ПолучитьСтатусСервера() - получает статус сервера работает/не работает
Сообщить(МояКомпонента.ПолучитьСтатусСервера());

// МояКомпонента.ПолучитьСообщение() - получает первое из списка сообщений пришедших по udp.
// Если сообщений нет то приходит "non"
Сообщить(МояКомпонента.ПолучитьСообщение()); 

// Остановка сервера.
МояКомпонента.ОстановкаСервера(); 

МояКомпонента.ПолучитьСообщение(). Так как реализация примитивная, то сообщения приходят в очередь. Данная функция достает только один элемент за вызов, а потом удаляет из очереди. Чтобы получить все сообщения, можно использовать Цикл.

About

Внешняя компонента для прослушивания UDP порта. Linux.

Resources

Stars

Watchers

Forks

Packages

No packages published