最近在研究GPRS通信,用的是SIM900A ,我们知道,电信运营商(移动、联通、电信)为SIM卡分配的IP地址和端口号,是随机的,不是固定的,所以每次新连接的建立,这个IP和端口号一般都是不相同的,也就是说SIM模块必须要先向TCP服务器请求连接,服务器才能找到这个模块,但是一般远程设备(SIM模块)并不是每时每刻都和服务器保持连接,我又想直接通过服务器访问远程设备,有没有方法实现服务器向远程设备发送连接请求并建立连接。
1、服务器不能主动连接DTU,中间还要跨越一个电信运营商的网关,不是服务器直接连到DTU。
2、RE“有没有方法实现服务器向远程设备发送连接请求并建立连接”,DTU上电连接服务器,服务器接受后,tcp连接建立,之后只要维护这个连接就可以了,双方定期发送心跳。
3、如果你在做GPRS通讯相关项目,我们可以合作。
4、新年快乐 。
SIM900A可以始终保持与服务器的连接,当然肯定存在掉线的情况,自动重连即可。
楼主希望在需要的时候让SIM900A与服务器建立连接,可能至少有两种方案:
一,远程设备上的SIM900A如果在不与服务器连接时不供电工作,那只好用定时(用RTC或者固定时间间隔)唤醒建立连接的方式,这种方式实时响应性不好,不是“唤之即来”。
二,远程设备的SIM900A一直供电正常工作着,那么服务器可以通过发送短信的方式让设备建立GPRS连接。实际上,这种方式还不如让GPRS连接一直连接着,顶多多耗一些电量,心跳流量也耗不了太多,如今流量包月的话应该比短信还划算。
增加心跳包,确认服务器和DTU远程设备是一直连接的!
请问我这个sim900gprs连上后再到后面的函数,就会关闭,什么原因,怎么解决呢?是不是会无数据传输自动关闭,我的程序有什么问题,麻烦楼主帮我看一下
是不是CIPSEND这条AT命令要等发送OK的回复啊,如果是透传模式(AT+CIPMODE=1)或者是快速传输模式呢