MTK之GPRS相关文档.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MTK之GPRS相关文档

一、MTK平台Socket联网过程 ???????? MTK平台中Socket创建步骤: ???????? 1.建立data account(上网账号) ???????? MMI层发送PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ消息到L4C层,在消息中设定data account 的id(1-10),自定义名???????? 称,APN(cmnet,cmwap),用户名,密码,DNS等信息. 2、?? soc_create() 创建Socket; ???????? kal_int8 soc_create(kal_uint8 domain, socket_type_enum type, kal_uint8 protocol, module_type ????? mod_id, kal_uint32 nwk_account_id); 3、?? 1??? soc_setsockopt 设置Socket为非阻塞模式; ???????? kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size); ???????? 第二个参数option设置为SOC_NBIO(socket非阻塞模式) ???????????????????????????????????? 设置为SOC_ASYNC(异步i/o) 2???????? soc_setsockopt 设置Socket选项为连接,读,写,关闭; ???????? val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT; ???? soc_setsockopt(socket_id,SOC_NBIO,val, sizeof(val)) 4、?? 如果是CMNET联网并且请求中用到了英文域名还需要解析域名soc_gethostbyname,除非使用ip作为域名,解析出来的IP作为我们建立连接的目标IP;如果是CMWAP联网,直接跳到第5步,直接连接移动或联通的网关:72:80; 5、?? soc_connect与服务器建立连接; ???????? kal_int8 soc_connect(kal_int8 s, sockaddr_struct *addr); 6、?? soc_send??? 发送请求; ???????? kal_int32 soc_send(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags); ???????? 其中buf字串需要遵守http连接协议,例如访问/下的的格式如下: ???????? GET HTTP/1.1 ???????? Host::80 ???????? User-Agent: */* ???????? Accept:*/* ???????? X-Online-Host: ???????? Connection:Keep-Alive 7、?? soc_recv???? 接收服务器返回的数据; ???????? kal_int32 soc_recv(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags); ???????? buf用来保存接收到的字符串,这里需要注意buf的长度不能超过2000,否则上真机的时候一到申请内存空间时就会死机,这里我????? 用循环来接收信息并写入文件. 8、?? soc_close??? 关闭Socket; ???????? kal_int8 soc_close(kal_int8 s); 9、?? 如果需要关闭数据账户soc_close_nwk_account(); 其他的一些 10、启动定时器 ???????? void StartTimer(U16 timerid, U32 delay, FuncPtr funcPtr) ???????? 在等待服务器响应时需要用到 11、关闭定时器 ???????? void StopTimer(U16 timerid) 12. 打开文件 FSAL_Status FSAL_Open(STFSAL *pstFSAL, void *szFile, FSAL_FileMode eMode) 13. 写文件 FSAL_Status FSAL_Write(STFSAL *pstFSAL, kal_uint8 *pbBuf, kal_uint32 uSize) 14. 关闭文件 FSAL_Status FSAL_Close(STFSAL *pstFSAL) 15. 回调函数

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档