我正在编写两个程序(server.vi)和(client.vi)。通过TCP连接相互通信。
客户端打开与服务器的TCP连接后,服务器将使用“A”类型的数据包进行响应。客户端将另一个类型为“A”的数据包作为确认发送回服务器。此时,服务器开始向客户端发送连续的“B”类型的数据包流。并且客户端开始发送类型为“C”的连续数据包流。
这意味着发送接收类型为B和C的数据包将是并行的。
我应该如何在labview中实现这样的内容?
这是我的一个想法,我希望有人可以评论或提供更好的建议。
服务器有两个while循环
一个。 first while包含一个TCP读取函数,它接收“C”类型的数据包。
湾第二个while循环包含一个TCP写入函数,它发送类型为“B”的数据包
客户端有两个while循环
一个。第一个while循环包含一个TCP写函数,它发送类型为“C”的数据包
湾第二个while循环包含一个TCP读取函数,它接收类型为“B”的数据包。
这样我们就可以并行发送和接收“B”和“C”类型的数据包。
除非客户端和服务器程序都停止,否则所有while循环都是相互独立的,并且基本上是无限的。
这有什么意义吗?这样做有更聪明/更好的方法吗?
答案 0 :(得分:2)
这听起来像是在LabVIEW中并行运行两个进程的合适方法,是的。
查看LabVIEW附带的示例 - 在LV 2012中,有一个“TCP Communicator - Active.vi”(帮助 - >查找示例 - > Networking-> TCP& UDP)看起来像它做了类似于你所描述的事情。
您需要弄清楚何时以及如何停止每个循环 - 上面的示例使用局部变量,但您也可以使用通知程序来执行此操作。例如。