2014-01-12 137 views
2

在TCP/IP连接的LabView中有一些例子,但我并没有真正了解VI在做什么。一些功能在做什么。这里是例子的图片。 图像1:服务器

为什么丝类型转换功能之后分裂成两条线?我真的不明白这些其他功能所做的标记。

enter image description here 图片2:客户

LabView TCP连接

+0

这是一个更简单的示例:http://stackoverflow.com/a/31005336/2193968 –

回答

7

首先,如果你不明白什么功能呢,学会打开上下文帮助窗口(Ctrl + H),然后右键单击每个函数来获取它的具体帮助。这会告诉你,函数读取和写入TCP流。示例查找器中还应该有更多的TCP示例,它应该有更多的注释。

至于发生了什么事情,LV代表TCP字节流作为一个字符串,所以编写该示例的人使用以下约定 - 使用类型转换为字符串转换为字符串,然后获取该字符串的长度(I32,so它是4个字节)并将其转换为字符串,并在数据之前发送它。

在接收端,代码首先读取4个字节(因为它是一个I32)并且将它们转换回I32。这是其余数据的长度,它被送入第二次读取,然后返回类型转换为原始类型的数据。这样做是因为TCP没有终止字符,因此这是知道要读取多少数据的便捷方法。你不必这样做,但它是一种选择。

+0

谢谢!但是为什么服务器上的'typecasting'函数没有提供'type'? – SjonTeflon

+4

由于顶部输入的默认数据类型是一个字符串,这是代码的作者想要的,因此不需要显式代码。一般来说,类型转换函数应该被认为是一种高级工具,因为它需要对LV如何存储和处理数据有所了解,而且它没有保护机制。扁平化到字符串原语更友好,网络流更加友好。 – Yair