【发布时间】:2014-09-06 12:09:45
【问题描述】:
我有一个基于 Arduino 的设备连接到一个 3G 调制解调器,我用它来记录远程环境中多个传感器的数据。我希望能够不时地从设备发送命令并将一些数据流式传输回我的标准网络连接 PC。如果远程设备连接到 WIFI 或其他局域网,这将相对简单,但由于设备通过 3G 连接,这意味着它位于 3G 运营商 NAT 之后,因此与设备建立连接变得困难。 当然,该设备可以随时打开与我的主机 PC 的 TCP 连接,问题是告诉设备何时我希望它这样做。我需要某种方式向设备发送某种消息,以通知它我希望它启动与我的 PC 的连接。
我一直在阅读 NAT 遍历技术,应用程序开发人员使用这些技术在 NAT 后面的 2 个设备之间启动 P2P 通信,例如 UDP 和 TCP“打孔”,但这种方法对于我的 arduino 系统来说似乎过于复杂。另一个一般的想法是让设备定期轮询网络服务器以寻找启动连接的信号,但我不确定这会产生多少流量(和数据使用成本),因为设备必须每 10 秒轮询一次大约是为了确保它在它轮询的 Web 服务器上设置的请求的合理时间范围内启动它的连接。
是否有任何常用的方法来实现这样的目标?任何一般的想法或见解将不胜感激
谢谢, 詹姆斯
【问题讨论】:
标签: sockets tcp arduino gsm 3g