用GPRS模块如何实现UDP通信

七星雪狼   2009-7-15 09:39 楼主
我想实现gprs模块(client)上网,和一个具有公网ip的计算机(Server)进行数据通信,想采用UDP协议。对UDP协议不太了解,现请教高手。
问题:gprs拨号获得的IP是动态的并且是内网IP,client 即使把这个IP传给server也没有用啊,server能用这个IP向它发送数据么??

回复评论 (6)

看了网上的资料,有的说可以但涉及到端口变换的问题,有的说不行。晕了!大虾指教一下啊!!!
点赞  2009-7-15 10:06
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-7-15 10:07
可不可以这样理解:
client 主动连server时将自己的端口、内网IP发送出去,并包含有通信服务商的网关IP。server端根据收到的信息发送回复时,实际是向网关ip和相应的端口发送数据,移动通信服务商再将端口映射到内网IP,就可以使server找到client了。
点赞  2009-7-15 10:53
uping
点赞  2009-7-15 11:17

6楼 nimebie 该用户已被删除

提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-7-15 11:16
和我想法是完全一样的。
“server接收数据的时候会得到一个发送源的ip和端口信息(这并不是client的ip个端口,但你无需关心),然后server就往这个源回信息就ok了. ”这样我就清楚了。
我也用tcp做成功过。
但是tcp协议比较复杂,需要消耗比较多的内存,单片机没法做,只有使用嵌入式系统。
为了降低成本所以试试udp,udp协议简单多了,单片机就可以做了。
我做的系统都是client定时报,server不需要随时连接它,只在client连接以后发送数据时,对它回复一些信息。我想这样端口应该不会变得这么快吧!

多谢skylkj指教!
点赞  2009-7-15 12:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复