2014-01-12 190 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