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

Network programming 如何实现labview服务器和客户端并行发送和接收网络数据包?,network-programming,labview,Network Programming,Labview,我正在编写两个程序(server.vi)和(client.vi)。通过TCP连接相互通信的 客户机打开与服务器的TCP连接后,服务器用类型为“a”的数据包进行响应。客户端将另一个类型为“A”的数据包发送回服务器作为确认。此时,服务器开始向客户端发送连续的“B”类型的数据包流。客户端开始发送类型为“C”的连续数据包流 这意味着发送和接收类型为B和C的数据包将是并行的 我应该如何在labview中实现这样的东西 这里是我的一个想法,我希望有人能发表评论或提供更好的建议 服务器有两个while循环 a

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

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

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

我应该如何在labview中实现这样的东西

这里是我的一个想法,我希望有人能发表评论或提供更好的建议

  • 服务器有两个while循环

    a。第一个while循环由一个TCP读取函数组成,该函数接收类型为“C”的数据包

    b。第二个while循环由发送“B”类型数据包的TCP写函数组成

  • 客户端有两个while循环

    a。第一个while循环由发送“C”类型数据包的TCP写函数组成

    b。第二个while循环由一个TCP读取函数组成,该函数接收类型为“B”的数据包

  • 通过这种方式,我们并行地发送和接收“B”和“C”类型的数据包

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


    这有什么意义吗?是否有一种更聪明/更好的方法可以做到这一点?

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

    看看LabVIEW附带的示例—在LV 2012中,有一个“TCP Communicator-Active.vi”(帮助->查找示例->网络->TCP&UDP),它的功能与您描述的类似


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

    是否有从头开始滚动循环的原因?您正在尝试实现REST或RPC协议吗?