当你的模块连上网络之后,你会获得一个局域网的地址,你可以通过AT命令查看,你每次连上去之后,前面的几位一直是不变的,我们假设是10.X.X.X,我们设定GSM模块使用固定端口发送,发如是2000<br /><br />然后你与远程服务器通讯,即模块发送数据包给远程服务器,这时你在远程服务器上会看到模块的IP地址是一个与10.X.X.X不同的IP地址,端口也不是上面使用的2000了。<br /><br />你可以多尝试几次,发现这个地址的前几位也是不变的,而且还有一个端口号。我们假设这个IP地址是211.33.44.X,端口号是PPPPP。还有一点就是,这个IP地址变来变去就那么几个<br /><br />为什么会这样呢,因为运营商为我们做了路由,因为他只向电信申请了有限的公网IP,所以肯定不可能让每个GSM模块都独占一个公网IP。而且又因为运营商的IP个数*端口数也是有限的,为了保证最大程序地使用这些资源,运营商分配映射给每台GSM的公网IP地址和端口号是有超时时限的,这个时限因地而异,比如在南京就只有1分钟。<br /><br />虽然GSM占用的公网IP和端口超时时间太短,但是如果你在该超时时间内再次与外网通讯时,该IP和端口的超时时间又被重新清除。所以你就不停地与外网通讯吧,这个IP和端口就是你的啦。<br /><br /><br />如果你的GSM模块的GPRS连接一直在线,不管你是否与外网通讯,GPRS的局域网地址是不会变化的,除非你的GSM死机、重启或者运营商的基站或服务器重启:) 你使用两台GSM之间相互通讯测试一下,隔个一个小时发一次数据,IP地址也不会变化。(另外有一点就是不知道运营商有没有为这个局域网地址设定最大使用时间)<br /><br />与外网通讯时,有时确实存在很大的时延。你可以拉个专线,或都将服务器放到运营商的机房里让运营商管。局域网内通讯还是挺快的。就是要给你Money,所以要是与外网通讯很爽,就没得人拉专线,运营商就赚不到钱啦:)
|