如何实现labview服务器和客户端并行发送和接收网络数据包?

时间:2013-06-12 03:30:40

标签: network-programming labview

我正在编写两个程序(server.vi)和(client.vi)。通过TCP连接相互通信。

客户端打开与服务器的TCP连接后,服务器将使用“A”类型的数据包进行响应。客户端将另一个类型为“A”的数据包作为确认发送回服务器。此时,服务器开始向客户端发送连续的“B”类型的数据包流。并且客户端开始发送类型为“C”的连续数据包流。

这意味着发送接收类型为B和C的数据包将是并行的。

我应该如何在labview中实现这样的内容?

这是我的一个想法,我希望有人可以评论或提供更好的建议。

  1. 服务器有两个while循环

    一个。 first while包含一个TCP读取函数,它接收“C”类型的数据包。

    湾第二个while循环包含一个TCP写入函数,它发送类型为“B”的数据包

  2. 客户端有两个while循环

    一个。第一个while循环包含一个TCP写函数,它发送类型为“C”的数据包

    湾第二个while循环包含一个TCP读取函数,它接收类型为“B”的数据包。

  3. 这样我们就可以并行发送和接收“B”和“C”类型的数据包。

    除非客户端和服务器程序都停止,否则所有while循环都是相互独立的,并且基本上是无限的。

    这有什么意义吗?这样做有更聪明/更好的方法吗?

1 个答案:

答案 0 :(得分:2)

这听起来像是在LabVIEW中并行运行两个进程的合适方法,是的。

查看LabVIEW附带的示例 - 在LV 2012中,有一个“TCP Communicator - Active.vi”(帮助 - >查找示例 - > Networking-> TCP& UDP)看起来像它做了类似于你所描述的事情。

您需要弄清楚何时以及如何停止每个循环 - 上面的示例使用局部变量,但您也可以使用通知程序来执行此操作。例如。