LabView TCP-соединение

В LabView есть несколько примеров соединений TCP/IP, но я не совсем понимаю, что делает ВП. Что делают некоторые функции. Вот фотографии примеров. Изображение 1: Сервер

Почему провод разделен на два провода после функции typecast? И я действительно не понимаю, что делают эти другие отмеченные функции.

введите здесь описание изображения Изображение 2. Клиент


person SjonTeflon    schedule 12.01.2014    source источник
comment
Вот более простой пример: stackoverflow.com/a/31005336/2193968   -  person Jerry Jeremiah    schedule 03.03.2016


Ответы (1)


Во-первых, если вы не понимаете, что делают функции, научитесь открывать окно контекстной справки (ctrl+H) и щелкать правой кнопкой мыши по каждой функции, чтобы получить конкретную справку по ней. Это скажет вам, что функции читают и пишут в поток TCP. В поисковике примеров должно быть еще несколько примеров TCP, в которых должно быть больше комментариев.

Что касается того, что происходит, LV представляет поток байтов TCP в виде строки, поэтому тот, кто написал пример, использовал следующее соглашение: используйте приведение типа для преобразования в строку, затем получите длину этой строки (I32, поэтому это 4 байта) и введите это также в строку и отправьте ее перед данными.

На принимающей стороне код начинается с чтения 4 байтов (потому что это I32) и приводит их обратно к I32. Это длина остальных данных, и она передается во второе чтение, которое затем возвращает данные, тип которых приведен к исходному типу. Это делается потому, что TCP не имеет завершающего символа, так что это удобный способ узнать, сколько данных нужно прочитать. Вы не обязаны делать это так, но это вариант.

person Yair    schedule 12.01.2014
comment
Спасибо! Но почему в функции typecasting на сервере нет type? - person SjonTeflon; 12.01.2014
comment
Поскольку типом данных верхнего ввода по умолчанию является строка, чего и хотел автор кода, поэтому не было необходимости в явном коде. В целом функцию приведения типов следует рассматривать как продвинутый инструмент, так как она требует некоторого понимания того, как LV хранит и обрабатывает данные, и не имеет механизмов защиты. Примитив flatten to string более удобен, а сетевые потоки будут еще более удобными. - person Yair; 13.01.2014