找回密码
 注册
搜索
查看: 507|回复: 2

[讨论] MODIS中连接域名的问题

[复制链接]
发表于 2009-9-2 13:02:37 | 显示全部楼层 |阅读模式
这两天小弟想用MODIS先连接一下网络,试试看能否通。大致的步骤如下(省略出错处理部分):

   memset(&addr, 0, sizeof(sockaddr_struct));
    soc_init_win32();
    sock_id = soc_create(PF_INET, SOCK_STREAM, 0, MOD_MMI, 10);
    soc_setsockopt(sock_id, SOC_NBIO, &val, sizeof(val));
    val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT;
    soc_setsockopt(sock_id, SOC_ASYNC, &val, sizeof(val));
    ret_val = soc_gethostbyname(KAL_FALSE, MOD_MMI, 5, "www.baidu.com", addr.addr, &addr.addr_len, 0, 10);
    if (ret_val == SOC_WOULDBLOCK)
    {
        gui_print_text(L"SOC_WOULDBLOCK..............");
        SetProtocolEventHandler(connect_response, MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND);
        return;
    }
   
回调函数如下:
void connect_response(void *msg)
{
    app_soc_get_host_by_name_ind_struct *dns_ind;


    gui_move_text_cursor(0, UI_device_height / 2);
   
    dns_ind = (app_soc_get_host_by_name_ind_struct *) msg;

    if(NULL != dns_ind && dns_ind->result == KAL_TRUE)
    {
        gui_print_text(L"ok");
    }
           
}
    ret_val的返回值一直是SOC_WOULDBLOCK,回调函数也没有抓到消息。

请问我的连接步骤是否存在问题?谢谢大虾指教!
 楼主| 发表于 2009-9-3 15:36:27 | 显示全部楼层
顶起~
好像MODIS的soc_gethostbyname函数都返回SOC_WOULDBLOCK。我将取出的百度IP打入IE,能进入百度。
点评回复

使用道具 举报

发表于 2009-9-3 15:49:38 | 显示全部楼层
返回SOC_WOULDBLOCK
应该是正确的。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-2-25 12:20 , Processed in 0.059719 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表