当前位置:编程学习 > wap >>

MTK socket 真机上能接收到数据 但是不能执行到ret == SOC_SUCCESS

1 我在真机上能接收到数据 但是不能执行到ret == SOC_SUCCESS状态( 我在此状态来判断数据接收完了) 这是为什么呀?

2 接收数据的内存块大小1500字节,我接收的网页有9000多字节,我都保存在内存里,动态分配了10000字节内存(能分配成功,返回不为NULL),这样会不会导致MTK出错呀?

3 med_alloc_ext_mem 最大能分配多少内存呀?

4 还有有什么好的办法判断数据接收完了呢? --------------------编程问答-------------------- void bsl_socket_receive(void) 

  kal_int32 srcLen;
kal_int32 dstLen = BUF_SIZE;

do{
//ret = soc_recv( soc_id, (void*)(rbuf + ret1), BUF_SIZE , 0);
ret = soc_recv( soc_id, (void*)(&recvBuf), 1500 , 0);
kal_prompt_trace(MOD_MMI, "bsl_socket_receive success ret:%d:!", ret);

kal_prompt_trace(MOD_MMI, "bsl_socket_receive success &recvBuf:%s", &recvBuf);

        if(ret > 0) 
{
memcpy((void*)(rbuf+ret1), (const void*)&recvBuf, ret);
ret1 += ret;
}

    }while(ret > 0);
if( ret == SOC_WOULDBLOCK) 

//  if(AsciiStrlen(rbuf) == 0)
//  {
//  SetProtocolEventHandler(bsl_socket_notify, MSG_ID_APP_SOC_NOTIFY_IND); 
//  return;
//  }
kal_prompt_trace(MOD_MMI, "SOC_WOULDBLOCK");


SetProtocolEventHandler(bsl_socket_notify, MSG_ID_APP_SOC_NOTIFY_IND); 
}else //if(ret == SOC_SUCCESS)
{        
                  在此处判断数据接收完成
} --------------------编程问答-------------------- 3 med_alloc_ext_mem 最大能分配多少内存呀? 
    kal_uint8 med_ext_mem[MED_EXT_MEM_SIZE];
其大小是MED_EXT_MEM_SIZE 
#define MED_EXT_MEM_SIZE   (MAX_SW_JPG_YUV_BUFFER_SIZE+MAX_CAM_FILE_BUFFER_LEN+MAX_IMG_DEC_EXT_MEM_SIZE+VRSI_MEM_SIZE+AUD_PROC_MEM_SIZE+MEM_OVERHEAD+M3D_PARSE_BUFFER_SIZE)

具体的大小在 *.lis 文件中可以找到
  med_ext_mem   0x08000240   Data       1181952  med_main.obj(LARGEPOOL_ZI) --------------------编程问答-------------------- --------------------编程问答-------------------- 你可以根据网页的content length来判断,如果在数据读完了,底层tcp应该要返回一个success的,否则就是底层的问题。 --------------------编程问答-------------------- ret = soc_recv( soc_id, (void*)(&recvBuf), 1500 , 0);
memcpy((void*)(rbuf+ret1), (const void*)&recvBuf, ret);

这里 写错了吧:应该是
memset(recvBuf, 0, 1500);
ret = soc_recv( soc_id, (void*)(recvBuf), 1500 , 0);
memcpy((void*)(rbuf+ret1), (const void*)recvBuf, ret);
--------------------编程问答-------------------- 一楼的了
补充:移动开发 ,  移动开发其他问题
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,