资源描述:
《浅谈mtk平台手机通过gprs网络连接pc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、浅谈mtk平台手机通过gprs网络连接pc 豆丁DocIn.com– 全球最大文档库!GPRS:通用分组无线技术(Generalpacketradiosservice),GSM网络覆盖的区域都可快速实现GPRS的覆盖.gprs的特点:高速率的数据传输.目前gprs速率达到40kb/s以上,gprs可实现的最高速率是171.2kb/s.EDGE最高速率可达到384kbs.可以提供按流量计费方式.快捷登录,永远在线.gprs的用户一开机就始终附着在gprs网络上,登录时间只要1-3秒,远快于普通拨号方式.中国移动gprs网络有
2、两个接入点:cmwap和cmnet.如果使用cmwap接入点连接上gprs网络后手机得到的ip地址形如10.x.x.x,这个地址是一个A类地址,也就是内网地址.这个地址的访问受到很多限制,它只能够访问gprs网而不能访问整个internet,如果要用这个地址访问internet就需要使用代理服务器,如中国移动的10.0.0.172的80端口.如果使用cmnet接入点连接上gprs网络后手机得到的ip地址是一个形如202.x.x.x或者61.x.x.x这样的地址.这是一个C类地址,它可以自由的访问整个internet,也就说它
3、和电脑的上网能力是一样.但是有些地方的移动卡不支持cmnet.mtk平台手机基于gprs连接pc的实现方式(tcp通讯方式)1.建立dataaccount(上网账号)MMI层发送PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ消息到L4C层,在消息中设定dataaccount的id(1-10),自定义名称,APN(cmnet,cmwap),用户名,密码,DNS等信息.2.创建socket手机上用socket建立连接和pc用socket建立连接的原理是一样的,只是api函数不一样.kal_int8soc
4、_create(kal_uint8domain,socket_type_enumtype,kal_uint8protocol,module_typemod_id,kal_uint32nwk_account_id);3.设置socket的异步非阻塞模式kal_int8soc_setsockopt(kal_int8s,kal_uint16option,kal_uint8*val,kal_uint8val_size);这里的第二个参数option设置为SOC_NBIO(socket非阻塞模式)kal_int8soc_setsock
5、opt(kal_int8s,kal_uint16option,kal_uint8*val,kal_uint8val_size);这里的第二个参数option设置为SOC_ASYNC(异步i/o)4.建立连接kal_int8soc_connect(kal_int8s,sockaddr_struct*addr);5.发送数据kal_int32soc_send(kal_int8s,kal_uint8*buf,kal_int32len,kal_uint8flags);6.读取数据kal_int32soc_recv(kal_int8s
6、,kal_uint8*buf,kal_int32len,kal_uint8flags);7.关闭连接kal_int8soc_close(kal_int8s);程序开发要点:1.实现之前要规定好发送方和接收方数据传输的协议,数据格式.包括如何确定数据长度,校验算法,是否加密等.2.要注意对其方式和存储方式.如果发送方和接收方的对其方式和存储方式不一样,数据可能会传输错误.3.错误处理,确保可以捕捉到所有错误,从而关闭socket连接,释放资源.4.超时设定,由于socket接口没有提供超时功能,所以需要自己实现超时功能,可在每
7、次操作前设定timer,如超时仍没有收到消息,则进行错误处理,特别要考虑到多个socket同时打开的情况.文章只是简单的介绍了在mtk平台手机上如何使用socket套接字来实现网络通讯,下一篇我会给出一个示例代码来详细说明mtk手机的socket套接字是如何实现异步I/O和消息驱动模型的.