展讯gprs联网的流程大概是怎样的
我在6600l上搞个下载,我是这样写的:
//选择帐号
MNGPRS_SetPdpContextPcoEx(
MN_DUAL_SYS_1,
1,//0,
0,
0
);
//请求激活
if(ERR_MNGPRS_NO_ERR != MNGPRS_SetAndActivePdpContextEx(
MN_DUAL_SYS_1,(uint8*)"cmwap",BROWSER_E))
{
test_log("-----gprs error--------");
}
else
{
test_log("--waiting for gprs rsp--------");
}
然后我在wap的处理函数中截获APP_MN_ACTIVATE_PDP_CONTEXT_CNF消息,我就认为gprs激活成功,然后开始socket的创建,连接,但是我发现发送数据的时候,
error = sci_sock_send();总是返回0,数据发送不出去,
不知是啥原因?
有没有搞过网络部分的哥们路过帮忙分析下?
问题找到了,真是不好意思,犯的错误太低级了,我把发送缓存填充完毕后,传给send()的时候却用了接受缓存,此时接收缓存还是空的,发送结果当然是0......
我是在HandleWapPsMsg()中截获相关消息的,是否是gprs激活的过程的问题导致我后来send的时候一直是 0==send() ?
我是收到了MN_GPRS_ERR_SUCCESS == signal_ptr->result
LOCAL void ProcessGprsActiveCnf(
DPARAM param
)
{
MMI_GPRS_T *signal_ptr = (MMI_GPRS_T*)param;
uint16 port = 0;
uint32 gprs_send_count=0;
uint32 gprs_recv_count=0;
MN_DUAL_SYS_E dual_sys = MN_DUAL_SYS_1;
uint8 default_setting = 0;
if(param==PNULL)
{
SCI_TRACE_MID("warning:ProcessGprsActiveCnf param PNULL!");
return;
}
dual_sys = signal_ptr->dual_sys;
SCI_TRACE_LOW("mmiwap.c:enter ProcessGprsActiveCnf() signal_ptr->result=%d", signal_ptr->result);
if(MN_GPRS_ERR_SUCCESS == signal_ptr->result)//succ,这样才表示成功
搞了个乌龙,哈哈~~~
发现错误解决错误
恩,这个还不错!