用GPRS模块如何实现UDP通信

silentchan 2009-07-15 09:39:54
我想实现gprs模块(client)上网,和一个具有公网ip的计算机(Server)进行数据通信,想采用UDP协议。对UDP协议不太了解,现请教高手。
问题:gprs拨号获得的IP是动态的并且是内网IP,client 即使把这个IP传给server也没有用啊,server能用这个IP向它发送数据么??
...全文
445 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
silentchan 2009-07-15
  • 打赏
  • 举报
回复
和我想法是完全一样的。
“server接收数据的时候会得到一个发送源的ip和端口信息(这并不是client的ip个端口,但你无需关心),然后server就往这个源回信息就ok了. ”这样我就清楚了。
我也用tcp做成功过。
但是tcp协议比较复杂,需要消耗比较多的内存,单片机没法做,只有使用嵌入式系统。
为了降低成本所以试试udp,udp协议简单多了,单片机就可以做了。
我做的系统都是client定时报,server不需要随时连接它,只在client连接以后发送数据时,对它回复一些信息。我想这样端口应该不会变得这么快吧!

多谢skylkj指教!
zhj8727 2009-07-15
  • 打赏
  • 举报
回复
uping
skylkj 2009-07-15
  • 打赏
  • 举报
回复
差不多吧

实际上所谓的"端口"可以理解为就是程序代号,比如你同时开qq和msn,收到数据操作系统怎么知道数据是给qq的还是给msn的呢?就是通过端口.
路由器其实也是一样,2个内网用户同时浏览网页,http服务器回传的网页数据路由器怎么知道给用户1还是用户2呢?也是通过端口.


你说的有点不太准确,过程是,client上的应用程序绑定本地一个端口(比如是4000),通过这个端口发送请求给路由器,路由器由此记录下client的内网ip和端口(4000),然后路由器分配自己的一个空闲端口(比如是8000),通过这个端口(8000)发送请求给server.
而对于server,它没有任何关于client的信息,它要做的只是回信息到路由器的外网ip的8000这个端口.路由器收到发送到其8000端口的数据后会再转发给client.
多级路由的转发原理也是一样的.

所以实际上你所担心的大部分工作其实都不需要你去关心的.你的client只管往server发数据就可以了.server接收数据的时候会得到一个发送源的ip和端口信息(这并不是client的ip个端口,但你无需关心),然后server就往这个源回信息就ok了.

你现在最需要关心的是gprs获得的临时udp端口可以维持多久,需要什么样的机制去维持. 我以前做的项目最终还是采用tcp去做的,而且也是5年前了,现在移动是如何处理的还真不太清楚.

silentchan 2009-07-15
  • 打赏
  • 举报
回复
可不可以这样理解:
client 主动连server时将自己的端口、内网IP发送出去,并包含有通信服务商的网关IP。server端根据收到的信息发送回复时,实际是向网关ip和相应的端口发送数据,移动通信服务商再将端口映射到内网IP,就可以使server找到client了。
skylkj 2009-07-15
  • 打赏
  • 举报
回复
照你这么说,内网用户就不能用qq了?
决定用户的除了ip还有端口,同个内网的多个用户在访问外网时的端口是不一样的.这个路由器会去处理的.

不过gprs网络对于一段时间没有通讯的udp资源会进行回收,导致client对外的端口号发生改变.所以如果你要随时随地都可以由server主动联系client,那必须每个一段时间发送一点数据给client,就是一般所说的"心跳包"

以前我们做的gprs设备也出现过拨号连接上一段时间后就莫明其妙断开的情况,后来发现把qq挂着就没事了,我猜原因就是qq本身也是基于udp的,所以qq的server会定时发送心跳包来维持client对外的端口
silentchan 2009-07-15
  • 打赏
  • 举报
回复
看了网上的资料,有的说可以但涉及到端口变换的问题,有的说不行。晕了!大虾指教一下啊!!!
热网监控系统 客户需求 以往热电企业的热网计量管理就是在供热用户的用供热现场安装一套计量仪表,为了 确保热网系统的正常运行,采用人工定期抄表、巡线、维护和数据统计。随着供热用户 数量的增加,其结果并不很理想,管理人员不能及时了解用户现场仪表的实时运行情况 ,有些故障、缺陷、部分用户的人为偷气现象,难以及时发现。热电企业要适应市场经 济的发展,需进一步转变观念,树立为供热用户提供优质服务的理念,以合格参数的蒸 汽来保证用户的正常需求,要求对用户供汽参数进行实时监测。随着工业自动化技术的 飞速发展,为适应热网管理的需求,提高管理水平,降低供热管损,本公司针对以上需 求,开发的实时热网监测管理系统,对全部站点的供热数据包括流量、温度、压力等数 据进行远程监控,在监控中心同时可以实现用户管理、系统报警及数据分析等功能,系 统可以根据要求扩展。 系统解决方案 系统组成: 1、现场一次仪表主要包括: 涡接传感器、温度传感器、压力变送器、流量积算仪。 注:以上4个模块可为一体或分体,统称热能涡接流量计。 2、GPRS采集终端: 不锈钢机柜、GPRS数据采集仪、避雷器、电源控制器(带避雷和后备UPS功能)、蓄电 池等。 3、中心服务器: 通过光纤上网的路由器、工控机、通信服务软件、数据分析软件、Window serve2003工作平台、SQL SERVER 2005/2008数据库。 系统作用 1、实时监控现场情况(流量、压力、温度、工况等); 2、提供每个用户的用热量,减少人工抄表频率,节约人员负担; 3、掌握各个用户的用水规律,提供偷水、漏水、表坏等信息; 4、流量、压力、温度等重要信息实现实时监测,实时报警; 5、为供热提供合理的调度与控制方案; GPRS数据监测仪 DatGPRS D211—市电供电 功能描述: 2个IP地址总台,TCP/UDP,支持域名 4个电话总台,实现短信数据传输 标配12AI,4-20MA、0-20MA、1-5V、0-5V 标配8DI,可作脉冲使用,光耦隔离 标配4DO,继电器类型,AC220V/3A 1个RS232C和1个RS485C,用于直读仪表 1M FLASH存储,可保存半年以上数据 液晶LCD显示(16*4),字符型,4个键盘,设置和查询所有参数 技术指标: 工作电压:DC8V-30V 工作电流:待机<80mA,发送<200mA 通讯网络:支持GSM900和1800 MHz双频,Phase2/2+标准 工作温度:-25~+70ºC; 尺寸:180*108*77mm 安装方式:工控机柜导轨卡口或2个M4螺丝固定; 材料:塑料 产品优势: 数据采集与GPRS无线通信集一体,成本低,GPRS无线断线率低 AI或DI有报警功能,并能触发短信和继电器输出报警,便于实时监控 支持短信功能,便于手机随时查询 键盘与液晶LCD操作,方便现场安装调试 1. 热网管道矢量图热点功能图 2. 实时数据显示(流量、压力、温度、报警、状态等) ----------------------- GPRS/CDMA INTERNET 温度传感器 供水、回水 压力变送器 RS485 积算仪 GPRS采集终端 涡街 热网监控系统设计方案全文共4页,当前为第1页。 热网监控系统设计方案全文共4页,当前为第2页。 热网监控系统设计方案全文共4页,当前为第3页。 热网监控系统设计方案全文共4页,当前为第4页。

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧