【问题标题】:Socket over internet Python Embedded互联网上的套接字 Python 嵌入式
【发布时间】:2020-12-08 16:33:04
【问题描述】:

我有一个可以连接到互联网的嵌入式系统。此嵌入式系统必须将传感器数据发送到 PC 客户端。

我在我的 PC 上放置了一个使用 python 的套接字客户端。我在嵌入式系统上放了一个套接字服务器(使用 C++ 语言,因为你只能使用 C++)。

我可以使用套接字成功地从我的 PC 连接到嵌入式系统并发送和接收我想要的任何东西。

现在,问题是我使用本地 IP 连接到系统,并且它们都必须连接到同一个 Wifi 路由器。

在实际应用中,我不会知道嵌入式系统在世界的哪个位置。我需要通过互联网访问它,因为它将通过 4g 连接到互联网。

我的问题是,如果嵌入式系统使用 4G 连接到互联网,我如何通过互联网连接到它?

谢谢

【问题讨论】:

    标签: python sockets tcp embedded


    【解决方案1】:

    实际上,在典型情况下,PC 或挂在 4g 调制解调器上的嵌入式设备都不太可能(或应该允许)有外部可路由的地址。

    这实际上意味着您需要通过云中相互可见的中继来反弹您的流量。

    对于物联网设备(基本上就是说,连接的嵌入式设备),一种非常常见的方法是使用 MQTT。对于具有任何类型 IP 网络功能的大多数计算平台,您都会以一种或另一种形式获得支持。

    当然还有许多其他方案 - 您可以使用 RESTful API 或 websockets(可能作为 MQTT 代理的替代模式)或大型云平台提供的各种专有物联网解决方案来做一些事情。

    将流量封装在 SSL 中也非常关键,因此您的嵌入式设备也需要对此提供支持。而且你必须考虑你打包了哪些 CA 证书,以及你对 time 做些什么,因为它作为 SSL 验证的输入的正式要求。

    【讨论】:

      【解决方案2】:

      我认为,如果您颠倒嵌入式系统和 PC 的角色,您的问题会更容易解决。如果您通过蜂窝网络使用 IP 协议与设备进行通信,则让设备连接到 PC 上的服务器要比反过来更容易。一些网络/蜂窝调制解调器不允许服务器套接字,在任何情况下,IP 地址通常是动态分配的,因此很难知道。通过让设备连接到服务器,它“知道”它应该建立连接的域名(或 IP 地址)和端口。您只需确保确实有一个服务器程序在该主机上运行,​​绑定到某个商定的端口号。您可以唤醒设备以根据许多标准建立连接,例如收集数据的时间或数量等。

      【讨论】:

        猜你喜欢
        • 2013-04-12
        • 1970-01-01
        • 2016-05-24
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多