MTK 10A socket编程相关经验分享

本文作者分享了在MTK 10A平台上进行socket编程的经验,包括数据账号建立、socket函数使用、HTTP头构建以及Chunked传输格式解析等关键步骤。遇到的问题如数据账号配置、sock_create后的错误处理、chunked格式数据的接收等,通过详细的代码示例和解决方案进行了阐述。此外,作者还建议避免在MTK平台上直接使用TASK,推荐使用EVENT和MMI_TASK进行函数调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近在做一个socket编程的模块,本来以为从展讯平台把相关的东西移植到MTK10A上就可以了,但是移植过程中碰到了许多的问题,导致了陆陆续续将近弄了3个月,才将这个下载的模块,改的相对稳定了点。虽然现在还在加断点续传、下载管理、文件上传的功能,但应该已经算后一阶段的事了,故先写个总结,总结这段时间里,碰到的问题,以及解决的方法。
      我还是根据我这个socket模块的流程来讲这些吧。

1.建立相关的数据账号
      在MTK中,要想建立相关的socket连接进行收发数据操作,在这之前必须建立相应的数据账号。在MODIS中,你可以不配置什么数据账号,直接调用soc_create()时最后一个参数填0,就可以进行相应的socket操作。但是放到手机真机上,这就不行了,数据账号乱来,你可以过了soc_create(),soc_setsockopt(),但是后续的soc_gethostbyname()或者soc_connect()就会出现返回值-2,然后一直等不到相对应的notify函数。
      在10A之前的MTK版本,数据账号可以直接10后者14然后调用cbm_encode_data_account_id(),就可以得到了分别对应的是cmwap和cmnet,在10A之后的版本,数据账号data_account有较大的改动,我现在调用的是以下的2个接口函数,实现的cmwap和cmnet。
      cbm_register_app_id_with_app_info()、cbm_set_app_id().
      kal_uint8 app_id = 0;
      kal_uint32 acct_id = 0;
      cbm_app_info_struct info;
      info.app_str_id = EM_SOCKET_TEXT;
      info.app_icon_id = EM_SOCKET_ICON;
      info.app_type = 0;
      cbm_register_app_id_with_app_info(&

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值