有人做过对GPRS动态通讯IP地址管理的模块吗,急?
怎么没人参与啊,我把意思说明白一点吧:
如:多个配有GPRS模块的终端设备(我们也可以把它当作手机),终端的ip地址跟终端id号绑定,问:多个终端设备连入internet,向一台有固定ip地址的主机发送数据.此时,我在主机上怎么可以得到终端的ip地址(ip地址会变化的啊)????还有,主机发数据给终端,怎么通过我得到的终端ip地址找到中断(因为,这个ip是非法的啊)???????
大家帮帮?????
如:多个配有GPRS模块的终端设备(我们也可以把它当作手机),终端的ip地址跟终端id号绑定,问:多个终端设备连入internet,向一台有固定ip地址的主机发送数据.此时,我在主机上怎么可以得到终端的ip地址(ip地址会变化的啊)????还有,主机发数据给终端,怎么通过我得到的终端ip地址找到中断(因为,这个ip是非法的啊)???????
大家帮帮?????
回复于: 2003-09-23 16:44:08
在GPRS上,数据包由移动的网关转发到internet的主机时,已经做了一次NAT(网络地址转换),所以如果在主机上,你还是用你在终端上得来的地址发送数据包,你的终端永远也不会收到的。数据包在转发到主机时,有特定的ip地址和端口号,你必须使用这个ip地址和端口号作为你的目标地址,你才能够收到你由主机发送出来的数据包。
回复于: 2003-09-24 10:22:21
谢谢,现在的问题是怎么解这个包,我在终端上的包转发给主机时会有什么变化,一般的格式是怎样的??????????
不好意思,久未登陆了.你在终端上生成这个数据包的时候设置成一个结构,在接收端将数据包按照这个结构就能够解出来了.比如你用UDP发送该数据包,结构设置成
typedef struct DataStruct
{
BYTE TerminalNum[10];
BYTE Data[200];
}
在接收端用recvform()函数接收,可以得到源IP地址和源端口号,相应数据,然后用这个结构对数据解包,最后在回复时,用如上得到的源IP地址和源端口号作为目标地址,send()一下就可以了.
关于上面问题,下面这篇文字也有提到,以后用到可以查看:
http://blog.csdn.net/xdw1985829/article/details/6691254
手机之间gprs直接通信 gprs模块直接通信 gprs通信不经过服务器
前段时间做项目,用到手机gprs通信,想不通过公网服务器中转直接两个gprs模块(手机)进行通信,比如一个做服务器,一个做客户端,开始认为唯一的难度是手机gprs通信的IP地址是随机分配的,只要知道了对方的IP,只要不掉线就可以,下面我来为大家解释这个问题:
首先两个GPRS直接通信是可能的,条件必须是:1:同省的电话卡2:同一个运营商3:目前上海北京等地区已经把本功能封停,本功能消失已经是趋势,写文章的此刻大连(辽宁)可以实现,北京肯定不可以实现(做过实验);
还有三非常惊喜的发现是:1:联通的两个电话卡用gprs直接通信可以实现!!北京也可以!!2:电信cdma应该也可以,没有做过实验3:移动卡(其他运营商没有试过,应该也可以)可以跨省联通普通的宽带网络!要想联通宽带网络下的路由分出的网络就要做映射了,这个比较有意思
再次强调一下,真正做项目时,无论从难度上还是效率上,使用公网服务器中转是正常的,应该的做法,GPRS直接通信即使某些地区目前可行,也不是长久之计,建议在架构方面不要心存侥幸,投机取巧,当然了,在没有公网服务器的情况下,使用上述可以联通的方法作为测试和演示之用,还是可以的。希望可以帮助大家!