mtk gprs cmnet通信详解
上一篇文章已经讲过如何CMWAP通信,今天我想把CMNET通信流呈也写下来,省得以后再翻代码,也乐意与广大网友分享交流。BLOG:http://blog.csdn.net/Oo_Oo_
由于手机在默认的情况下设置的是CMWAP上网,所以我们得变改这个移动接入点(apn),在手机里先设置CMNET上网。在GPRS里的china mobile里的GPRS接入点改成“cmnet”,这样设置cmnet上网模式了
接下来我们看代码了:
(1) soc_create()
(2) soc_gethostbyname()
如果程序总是访问一个服务器的话,建议跳过这一步,因为这样可以省去域名转换IP地址的过程,这也是一个耗时及危险的步骤
kal_int8 soc_gethostbyname(kal_bool is_blocking,
module_type mod_id,
kal_int32 request_id,
const kal_char *domain_name,
kal_uint8 *addr,
kal_uint8 *addr_len,
kal_uint8 access_id,
kal_uint32 nwk_account_id);
blocking = 0, mod_id = MOD_MMI, request_id表示在回调soc_app_get_host_by_name_ind里的app_soc_get_host_by_name_ind_struct里的request_id
SetProtocolEventHandler(soc_app_get_host_by_name_ind, MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND);
(3)soc_connect() ip地址为app_soc_get_host_by_name_ind_struc里的IP,而不是移动的10.0.0.172
(4)soc_send
(5)soc_recv
(6)soc_close
(7)soc_close_nwk_account_by_id()
最后这一步是在退出程序时调用一下即可,不要每次请求都调用,这样会很影响速度的
这里跟CMWAP最大不同之处是要设置CMNET上网,还有一个就是可能会多一个soc_gethostbyname步骤,还有一点这套流程在VC模拟器也是能通信的