首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TCP将PC应用程序连接到一组类似的硬件设备。

使用TCP将PC应用程序连接到一组类似的硬件设备。
EN

Software Engineering用户
提问于 2015-08-06 20:26:59
回答 2查看 90关注 0票数 0

我们公司已经开始设计一个系统,在这个系统中,许多(通常是4或6)对力敏感的平台,包括负载单元,可以通过TCP将数据传输到PC。

每个平台和PC应通过网络电缆连接到作为集线器的网络交换机上。

每个平台将运行一个微控制设备,一个固件将由我们的供应商开发。

所以我的问题是:

软件应用程序和每个外围设备之间的推荐客户机/服务器关系是什么?应用程序应该为每个平台建立一个连接吗?

首先,我认为平台应该是服务器(侦听器),这样当打开时,它会一直处于“待机”(侦听)状态,等待PC请求连接到它(我想知道如何指定正确的IP,尽管.)。

但由于PC只是一台,平台很多,也许PC应该是“服务器”,每台外围设备都是众多“客户端”之一。这让我困惑..。

EN

回答 2

Software Engineering用户

发布于 2015-08-07 03:10:22

广播:

最简单的方法

给予:

每个平台和PC应通过网络电缆连接到作为集线器的网络交换机上。

假设这些设备都在同一个网络上是安全的。让每个设备将其数据放入网络的广播中,不要担心它。您不需要配置服务器所在的位置,也不需要配置服务器当时的启动(或关闭,并需要重新连接)。设备只是抛出他们的数据,并继续收集。

服务器也同样简单。它监听被广播到网络的数据包,当它得到一个数据包时,它处理它并继续侦听数据包。

这确实是你能做的最简单的事情,如果所有东西都在同一个网络上(如果有很多传感器提供数据,网络上的其他东西就会产生噪音)。

消息队列

如果您愿意在设备上投入一点时间,以及设备正在发送什么数据,那么使用消息队列可以使体系结构变得更容易。特别是ZeroMQ,它允许一个更形式化的结构。

同样,设备写入提要,服务器从提要中读取。这就是它的基础。这是一种相当灵活的方法,根据需求的具体情况,这里可以应用许多体系结构。

如果您想要有保证交付的内容,请找一个具有更强大的消息代理的工具。这样,您就可以对结构进行更多的推理,包括让多个工作人员/消费者离开消息队列,以便在负载开始出现问题时处理数据(但您希望确保每条消息只发送给一个工作人员)。

票数 1
EN

Software Engineering用户

发布于 2015-08-07 02:03:54

从消费者的角度来看,我希望( a)容易设置和可选的b)东西连接到互联网。

对于a点,设备应该能够在本地网络(例如Zeroconf)或因特网上自动发现服务器。

至于b)由于您已经计划使用TCP,所以使用HTTP可能不会带来太大的麻烦。它可能有助于设计,因为您将不需要考虑使用的协议,如何添加安全性等。特别有帮助,因为服务器部分将是非常容易的。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/292041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档