Асинхронная работа с TCP

Делись идеей, получай поддержку и критику!

Асинхронная работа с TCP

Postby Aleksandr on 18 Oct 2013, 09:30

Здравствуйте, сообщество labviewportal!

Представляю на Ваш суд библиотеку для асинхронной работы с TCP протоколом. Пожелания/замечания приветсвуются :wink:
Библиотека тестировалась на LabVIEW версиях 2010-2013, более ранние версии отсутствуют.
Из известных недочетов:
-Работает только под ОС Windows (разработка под Linux в планах (буду рад любому тестеру :) )).
-Одновременно запускать библиотеку на одной машине не представляется возможным (пока).

С уважением,
Александр

PS: Кстати прочитать о проблеме можно .
PSS: Почему нельзя выкладывать архивы с *.7z разрешением?! :nono:
Attachments
Async TCP Event.rar
LabVIEW 2010
(717.3 KiB) Downloaded 141 times
Uniscan Research
Aleksandr
user
user
 
Posts: 96
Joined: 21 Jun 2011, 15:05
Location: Novosibirsk
Medals: 1
Gold (1)
LabVIEW Version: 2010-2014
Karma: 61
students

Re: Асинхронная работа с TCP

Postby Borjomy_1 on 18 Oct 2013, 10:28

Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Асинхронная работа с TCP

Postby IvanLis on 18 Oct 2013, 12:27

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Асинхронная работа с TCP

Postby Aleksandr on 18 Oct 2013, 12:56

К сожалению, встроенными в LabVIEW средствами работы с TCP невозможно определить когда на порту появились данные, кроме как попытаться прочесть их. Это несет ряд неудобств, например, нельзя одновременно прослушивать разных пользователей в одном потоке. А если обходить это как показано в примере от NI, то придется отсылать некую "метку", подтверждающую намерение отослать данные и в цикле с некой задержкой проверять весь массив подключенных соединений.
Функция же библиотеки заключается в том, что она отсылает событие с ссылкой на подключение в том момент, когда на данное подключение пришли данные либо оно разорвало соединение.
Uniscan Research
Aleksandr
user
user
 
Posts: 96
Joined: 21 Jun 2011, 15:05
Location: Novosibirsk
Medals: 1
Gold (1)
LabVIEW Version: 2010-2014
Karma: 61
students

Re: Асинхронная работа с TCP

Postby IvanLis on 18 Oct 2013, 13:12

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Асинхронная работа с TCP

Postby Borjomy_1 on 18 Oct 2013, 13:13

Вообще-то правильнее при установлении подключения создавать отдельный независимый поток (вызывая реентрантную :vi: ), который безо-всяких изысков просто читает данные по своему соединению.
Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Асинхронная работа с TCP

Postby IvanLis on 18 Oct 2013, 13:15

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Асинхронная работа с TCP

Postby Andrew Lunev on 18 Oct 2013, 13:56

На сколько я понял, это попытка создать аналог Network Streams из LabView. Преимущество я вижу только в том, что через Network Streams могут общаться программы созданные на LabView, а в этом варианте можно организовать передачу и от сторонних контроллеров.
User avatar
Andrew Lunev
leader
leader
 
Posts: 855
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Асинхронная работа с TCP

Postby Borjomy_1 on 18 Oct 2013, 14:07

Самая главная проблема в том, что:
Размер пакета нигде не задается (иногда это и невозможно). Таким образом, предположить, сколько времени продлится передача, нельзя. Остальные соединения будут ждать. Нарушение отправки данных по одному соединению стопит все остальные.
Далее - как будет реагировать Listener, если в процессе передачи, он зафиксирует изменение размера данных в буфере? Потенциально возможен конфликт - или будет лишний вызов события по пакету, который сейчас считывается, либо новый пакет, который пришел в процессе считывания, будет пропущен.
Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Асинхронная работа с TCP

Postby Aleksandr on 18 Oct 2013, 14:28

Uniscan Research
Aleksandr
user
user
 
Posts: 96
Joined: 21 Jun 2011, 15:05
Location: Novosibirsk
Medals: 1
Gold (1)
LabVIEW Version: 2010-2014
Karma: 61
students

Re: Асинхронная работа с TCP

Postby Borjomy_1 on 18 Oct 2013, 14:56

Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Асинхронная работа с TCP

Postby Andrew Lunev on 18 Oct 2013, 15:14

User avatar
Andrew Lunev
leader
leader
 
Posts: 855
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Асинхронная работа с TCP

Postby IvanLis on 18 Oct 2013, 19:59

Знание нескольких принципов освобождает от знания многих фактов!





User avatar
IvanLis
professor
professor
 
Posts: 4489
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 697
hardware VIP bloggers teachers

Re: Асинхронная работа с TCP

Postby Aleksandr on 19 Oct 2013, 20:45

Uniscan Research
Aleksandr
user
user
 
Posts: 96
Joined: 21 Jun 2011, 15:05
Location: Novosibirsk
Medals: 1
Gold (1)
LabVIEW Version: 2010-2014
Karma: 61
students

Re: Асинхронная работа с TCP

Postby Borjomy_1 on 21 Oct 2013, 08:50

Borjomy_1
expert
expert
 
Posts: 1766
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Next

Return to Проекты

Who is online

Users browsing this forum: No registered users and 2 guests

cron