当前位置: 代码迷 >> 移动平台 >> 熟悉MTK手机平台的看进来!该如何解决
  详细解决方案

熟悉MTK手机平台的看进来!该如何解决

热度:6837   发布时间:2013-02-26 00:00:00.0
熟悉MTK手机平台的看进来!!!
熟悉MTK手机平台的或者熟悉其他手机平台的 DN们。。。。。进来吼下!!!!


 

------解决方案--------------------------------------------------------
我来了。。。
------解决方案--------------------------------------------------------
求高手指导:我的socket联网解析域名老是连接不了 是MT6235的平台
小弟新手 感激不尽
#include "MMI_features.h"
#include "MMIDataType.h"
#include "gdi_include.h"
#include "wgui.h"
#include "gui.h"
#include "Globaldefs.h"
#include "CustDataRes.h"
#include "gui_themes.h"
#include "wgui_categories.h"
#include "wgui_softkeys.h"
#include "stdC.h"
#include "HistoryGprot.h"

#include "Gdi_include.h"
#include "MainMenuDef.h"

#include "Kal_non_specific_general_types.h"
#include "soc_api.h"
#include "Cbm_api.h"
#include "EventsGprot_Int.h"
#include "ProtocolEvents.h"



kal_char *domain_name= "http://my.gdtel.com";
kal_uint8 val;
kal_int8 socket_id;
kal_int8 ret;
kal_uint8 rcv[100];
kal_uint8 rcv_len = 100;
sockaddr_struct server_ip_addr;


void soctest(void);
void draw( S32 x, S32 y, char *str);
MMI_BOOL soctest_ind(void *inMsg);
MMI_BOOL socket_notify(void *inMsg);

MMI_BOOL soctest_create(void);
MMI_BOOL soctest_gethostbyname(void);
MMI_BOOL soctest_connect(void);
kal_int8 soctest_close(void);

void mmi_enter_eReader()
{
kal_int8 ret = 0;
EntryNewScreen(MAIN_MENU_SCREENID,NULL,NULL,NULL);
soctest();
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}



void soctest(void)
{

entry_full_screen();
clear_screen();

soctest_create();

soctest_gethostbyname();

soctest_connect();

gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);
soctest_close();
}




MMI_BOOL soctest_create(void)
{
socket_id = soc_create(SOC_PF_INET,
SOC_SOCK_STREAM,
0,
MOD_MMI,
14);

printf("\n\n\n Socket_id = %d\n\n\n", &socket_id);

if(socket_id<0) //socket创建失败
{
gui_move_text_cursor(10,10);
gui_print_text(L"Create Fail");
return KAL_FALSE;
}
else //创建OK
{
val = 1; //设置socket模式
soc_setsockopt(socket_id, SOC_NBIO, &val, sizeof(val));
val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT;
soc_setsockopt(socket_id, SOC_ASYNC, &val, sizeof(val));

gui_move_text_cursor(10,10);
gui_print_text(L"Create OK");
return KAL_TRUE;
}
}


MMI_BOOL soctest_gethostbyname(void)
{
ret = soc_gethostbyname2(KAL_TRUE,
MOD_MMI,
1, //HTTP
(kal_char *)domain_name,
(kal_uint8*)rcv,
(kal_uint8 *)&rcv_len,
0,
14,
0,
NULL);
if(ret == SOC_SUCCESS)
{
memcpy(server_ip_addr.addr, rcv, 4);
server_ip_addr.addr_len = 4;
gui_move_text_cursor(10,60);
gui_print_text(L"Get Host OK");
return KAL_TRUE;
}
else
{
if(ret == SOC_WOULDBLOCK) // 当前函数处于阻塞,等待监听消息MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND的通知函数处理完毕返回 
{
gui_move_text_cursor(10,60);
gui_print_text(L"Get Host WOULDBLOCK");
mmi_frm_set_protocol_event_handler(MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND, (PsIntFuncPtr)soctest_ind, MMI_TRUE);
// SetProtocolEventHandler(soctest_ind,MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND);
return KAL_TRUE;
}
else
{
gui_move_text_cursor(10,60);
  相关解决方案