a49666
V2EX  ›  问与答

用手机卡上网的单片机, GPRS 模块怎么 socket 编程和服务器全双工通信。

  •  
  •   a49666 · Jul 13, 2017 · 3774 views
    This topic created in 3408 days ago, the information mentioned may be changed or developed.

    一个大学生比赛,楼主和工程学院的合作,他对网络不太懂,我对单片机不太懂。现在需求是这样的,我租了个阿里云的服务器,希望他可以和我全双工的通信。 但是用手机卡上网的在过通讯商的时候用 PAT 协议, 端口号和 ip 地址都不固定。 现在设想他定期向我发汇报,我记下它电信的 IP 地址和端口号,之后我就可以主动给他发消息了。 但是不知道具体怎么操作。。 好像很有难度的样子

    10 replies  •  2017-07-16 10:46:17 +08:00
    guoyijun163
    guoyijun163
    Jul 14, 2017
    1
    数据量不大的话不如做轮询简单些……不然就只有类似于 TCP 这样的长链接了
    wohenyingyu02
    wohenyingyu02
    Jul 14, 2017 via iPhone
    2
    别的不懂,就说现在的手机网络基本上都不是外网 IP,而且 NAT 的 Mapping 和 filtering 行为都是最严格的 Address port dependent,想穿透过去服务端必须用同一个外网 IP 端口接收和发送,客户端不管 IP 是否变化,汇报的频率至少一秒一次刷新 mapping 缓存……都是在 4G 下测的,不知 GPRS 是否一样,我是学文科的,只理解 IP 层以上的网络😬
    ldbC5uTBj11yaeh5
    ldbC5uTBj11yaeh5
    Jul 14, 2017 via Android
    3
    mqtt
    wohenyingyu02
    wohenyingyu02
    Jul 14, 2017 via iPhone
    4
    @wohenyingyu02 以上说的是 UDP
    feather12315
    feather12315
    Jul 14, 2017 via Android
    5
    VPN 不就是解决这问题的嘛。
    还用想啥
    billlee
    billlee
    Jul 14, 2017
    6
    不太可能实现,单片机上是实现不了 TCP/IP 协议栈的。这种模块一般都是自己实现了协议栈,然后通过 UART 接受 AT 指令给单片机调用,能做的就是那几条指令暴露出来的事情。要完整的 TCP/IP 得上 ARM.
    lty1993
    lty1993
    Jul 14, 2017
    7
    找些提供 lwIP 兼容层的 SPI 的 WiFi 芯片。
    234235
    234235
    Jul 14, 2017
    8
    不知道你的数据量多大,需要全双工通信。
    定期向你汇报,这个就是心跳包啊。
    通信并不难,电脑现在不也是在局域网内吗?暴露出去的也并不是本机的 IP 和端口号。需要长连接就用 TCP,服务器开一个 TCP 端口,设备连接进来,剩下的,和 PC 到 PC 的 socket 通信好像并无差别。心跳包一般 15/30 秒 一条,如果设备不移动且信号较好的话,IP 和端口的改变频率并不高。设备端做好断开重连和数据重发就好。
    UDP 的话就需要你实时回复,IP 不一定会变,但每次 UDP 的端口号都是很大几率改变的。
    另外,如果你们准备采用 UART 接口模块,数据量不可能做的很大。需要替换为 USB 或者 SPI 接口的。不过这样会提高成本和对方的编程难度。
    mkeith
    mkeith
    Jul 14, 2017
    9
    没事 PAT 协议??

    我们 GPRS 是可以连接 Socket 的,而且持续时间长的能持续几天的.
    xieyudi1990
    xieyudi1990
    Jul 16, 2017 via Android
    10
    @billlee 6 年前在单片机上实现过 http 服务器的就看看。还让同学的手机连过。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:26 · PVG 05:26 · LAX 13:26 · JFK 16:26
    ♥ Do have faith in what you're doing.