[讨论] 关于SIM900A和TCP服务器的通信问题

hunkxie   2014-1-1 20:52 楼主
最近在研究GPRS通信,用的是SIM900A ,我们知道,电信运营商(移动、联通、电信)为SIM卡分配的IP地址和端口号,是随机的,不是固定的,所以每次新连接的建立,这个IP和端口号一般都是不相同的,也就是说SIM模块必须要先向TCP服务器请求连接,服务器才能找到这个模块,但是一般远程设备(SIM模块)并不是每时每刻都和服务器保持连接,我又想直接通过服务器访问远程设备,有没有方法实现服务器向远程设备发送连接请求并建立连接。

回复评论 (8)

1、服务器不能主动连接DTU,中间还要跨越一个电信运营商的网关,不是服务器直接连到DTU。
2、RE“有没有方法实现服务器向远程设备发送连接请求并建立连接”,DTU上电连接服务器,服务器接受后,tcp连接建立,之后只要维护这个连接就可以了,双方定期发送心跳。
3、如果你在做GPRS通讯相关项目,我们可以合作。
4、新年快乐 。
点赞  2014-1-1 21:03
SIM900A可以始终保持与服务器的连接,当然肯定存在掉线的情况,自动重连即可。
楼主希望在需要的时候让SIM900A与服务器建立连接,可能至少有两种方案:
一,远程设备上的SIM900A如果在不与服务器连接时不供电工作,那只好用定时(用RTC或者固定时间间隔)唤醒建立连接的方式,这种方式实时响应性不好,不是“唤之即来”。
二,远程设备的SIM900A一直供电正常工作着,那么服务器可以通过发送短信的方式让设备建立GPRS连接。实际上,这种方式还不如让GPRS连接一直连接着,顶多多耗一些电量,心跳流量也耗不了太多,如今流量包月的话应该比短信还划算。
我爱大清国我怕它完了可谁爱我啊
点赞  2014-1-1 23:12
增加心跳包,确认服务器和DTU远程设备是一直连接的!
点赞  2014-1-2 14:21
请问我这个sim900gprs连上后再到后面的函数,就会关闭,什么原因,怎么解决呢?是不是会无数据传输自动关闭,我的程序有什么问题,麻烦楼主帮我看一下
  • send-gprs-data函数
  • sim900-gprs-init 函数
点赞  2015-10-28 15:13
引用: zz坏牧羊人 发表于 2015-10-28 15:13
请问我这个sim900gprs连上后再到后面的函数,就会关闭,什么原因,怎么解决呢?是不是会无数据传输自动关闭 ...

是不是CIPSEND这条AT命令要等发送OK的回复啊,如果是透传模式(AT+CIPMODE=1)或者是快速传输模式呢
点赞  2015-11-10 15:12
我也出现这种问题,怎么解决的,谢谢大神
点赞  2016-4-12 09:35
点赞  2016-4-20 14:37
发送多少分哦
点赞  2016-7-26 17:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复