2014-01-12 2 views
2

LabView에는 TCP/IP 연결에 대한 몇 가지 예제가 있지만 실제로 VI가 수행하는 것은 아닙니다. 어떤 기능들이하고있는 일. 다음은 예제의 그림입니다. 이미지 1 : 서버
와이어는 타입 변환 함수 뒤에 두 개의 와이어로 갈라진다 왜
? 그리고 나는이 다른 기능들이 표시하는 것을 실제로 얻지 못한다.

enter image description here 이미지 2 :

LabView TCP 연결

+0

다음은 더 간단한 예입니다. http://stackoverflow.com/a/31005336/2193968 –

답변

7

먼저 클라이언트, 당신은 기능, 상황에 맞는 도움말 창 (Ctrl + H)를 엽니 다 배울 수 있는가 이해하고 제대로 각 기능을 클릭하지 않는 경우 그것을위한 구체적인 도움. 이렇게하면 함수가 TCP 스트림을 읽고 쓰는 것을 알 수 있습니다. 또한 예제 찾기에 더 많은 TCP 예제가 있어야하는데 더 많은 주석이 있어야합니다.

LV는 TCP 바이트 스트림을 문자열로 나타내므로이 예제를 작성한 사람은 다음 규칙을 사용합니다. - 유형 변환을 사용하여 문자열로 변환 한 다음 해당 문자열의 길이를 가져옵니다 (I32이므로 그것은 4 바이트입니다.) 그리고 그것을 캐스팅하여 문자열에 넣고 데이터 앞에 보냅니다.

수신 측에서는 코드가 I32이기 때문에 4 바이트를 읽고 I32로 다시 캐스팅합니다. 이것은 나머지 데이터의 길이이며 두 번째 읽기에 공급 된 다음 원래 유형으로 유형 변환 된 데이터를 반환합니다. 이것은 TCP에 종결 문자가 없기 때문에 수행됩니다. 따라서 읽을 데이터의 양을 알기 편리합니다. 이런 식으로 할 필요는 없지만 선택 사항입니다.

+0

감사합니다! 하지만 서버에서'typecasting' 함수에'type'이 제공되지 않는 이유는 무엇입니까? – SjonTeflon

+4

맨 위 입력의 기본 데이터 유형은 코드 작성자가 원하는 문자열이므로 코드를 명시 할 필요가 없습니다. 일반적으로 LV가 데이터를 저장하고 처리하는 방법을 이해해야하고 보호 메커니즘이 없으므로 유형 변환 함수는 고급 도구로 간주되어야합니다. flatten to string 프리미티브는보다 친숙하며 네트워크 스트림은 더욱 친숙합니다. – Yair