高铁创意图片大全大图:MTK socket 编程经验(转)

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 01:48:00

MTK socket 编程经验(转)

2010-12-08 12:35:44|  分类: 默认分类 |  标签: |字号大中小 订阅

MTK网络是手机网络,同PC上的网络不同,手机网络包括GPRS连接和TCP连接,
  所以建立MTK的网络连接时需要首先设置好网络账号,建立GPRS连接,在GPRS连接建立后,
  再去建立TCP连接。具体流程如下:
1、设置网络账号的接入点:
在MTK的网络中分wifi、GPRS和GSM三种,我们在上网时使用最多的是GPRS方式。一般情况下,GSM和GPRS分别各有10个账号,在网络->数据账号资料里面可以看到。
GSM的10个账号资料对应的id是从0-9,GPRS的10个账号资料对应的id是从10-19。每个账号资料里面最关键的是接入点,通常情况下,接入点是CMWAP或CMNET。代表
是使用cmwap还是cmnet联网方式。这两种联网方式的区别在于,使用cmwap需要经过中国移动的代理服务器10.0.0.172,才能连接到最终的服务器上去。而cmnet则
直接连接到最终要访问的服务器。账号id在调用soc_create时会用到,由此就决定了用的是哪个接入点,什么方式进行联网。设置接入点可以有两种方式:
1)选择一个已经设置好接入点的账号id,直接拿来使用。
2)通过异步的发消息PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ方式设置你想要用的账号资料的接入点。

2、生成应用id
appid = cbm_register_app_id((U16) MAIN_MENU_FUNANDGAMES_TEXT, GetRootTitleIcon(MAIN_MENU_FUNANDGAMES_ICON));

如果需要,将GPRS状态设置为保持,这样在每次关闭socket描述符后,不会
关闭GPRS连接,这样在下一次建立TCP连接时,会节省建立GPRS连接的时间,
否则,每次调用soc_connect的时候会自动去建立GPRS连接,这样会花掉3-6秒。
cbm_hold_bearer(MOD_MMI, appid);

3、转换账号id,在MTK联网时,需要用到一个账号id,如果是双卡的手机,
在调用soc_create之前,账户id需要做转换。
nwk_account = cbm_encode_data_account_id(nwk_account, sim_id, appid, KAL_FALSE);

4、创建socket,设置成异步非阻塞的方式,建立TCP连接,设置回调函数,发送和接收数据。

5、关闭socket  评论这张 转发至微博