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

为什么MTK平台上的socket连接不通?

请教各位高手,我在mtk平台做了一个网络应用,问题如下:
1,create socket没问题,语句如下:
socket_id = soc_create(SOC_PF_INET, SOC_SOCK_STREAM, 0, MOD_MMI, 10);
2,然后我调用soc_gethostbyname函数:

ret = soc_gethostbyname(KAL_FALSE,MOD_MMI,1,(kal_char*)hostName,(kal_uint8*)rcvd_buffer,(kal_uint8*)&rcvd_counter,0,10);
...
if (ret == SOC_WOULDBLOCK)
{
...
SetProtocolEventHandler(get_host_by_name_event_handler, MSG_ID_APP_SOC_GET_HOST_BY_NAME_IND);
}
3,在get_host_by_name_event_handler函数中,
   ...
   app_soc_get_host_by_name_ind_struct *dns_ind;
   if (dns_ind->result == KAL_TRUE)   {
    ...
   }
   else
   {
     ...
   }

问题是,返回的dns_ind->result的值总是为KAL_FALSE。
说明:手机的gprs功能已经开通并且也设置好了,能够正常上网。


         --------------------编程问答-------------------- 查查是不是什么地方需要设置dns server --------------------编程问答-------------------- 能不能说说用的什么开发包?
GPRS 网络上的 DNS 比较差,而且必须是 internet 接入,因为  wap 接入是不会给你转 DNS 请求的。 --------------------编程问答--------------------
引用 2 楼 jawibn 的回复:
能不能说说用的什么开发包? 
GPRS 网络上的 DNS 比较差,而且必须是 internet 接入,因为  wap 接入是不会给你转 DNS 请求的。


我用的是MTK6235的开发平台。手机也设置了GPRS接入点,分别设置为cmwap和cmnet,试过了,都不行。 --------------------编程问答-------------------- 你的手机能上网么 --------------------编程问答--------------------
引用 4 楼 ultrapro 的回复:
你的手机能上网么

能上网,可以浏览网页。 --------------------编程问答-------------------- 第一步错了!
kal_int8 soc_create(kal_uint8 domain, kal_uint8 type, kal_uint8 protocol, kal_uint16 mod_id, kal_uint32 nwk_account_id)
nwk_account_id
是不能随便赋值的,你试试14,14好像是移动的某端口 --------------------编程问答--------------------
引用 6 楼 Oo_Oo_ 的回复:
第一步错了! 
kal_int8 soc_create(kal_uint8 domain, kal_uint8 type, kal_uint8 protocol, kal_uint16 mod_id, kal_uint32 nwk_account_id) 
nwk_account_id 
是不能随便赋值的,你试试14,14好像是移动的某端口


谢谢解答。我改成14了,dns_ind->result的值还是KAL_FALSE。 --------------------编程问答-------------------- 好像不需要 dns 这部吧
直接socket连接就ok 了、、 --------------------编程问答-------------------- nwk_account_id 要正确才行,另外直接用IP地址试试 --------------------编程问答-------------------- 只能多调试一下了。文档里面没有相关的信息吗? --------------------编程问答-------------------- 应该是 nwk_account_id  的问题 --------------------编程问答-------------------- --------------------编程问答-------------------- 其实我觉得不是nwt_account_id的问题,这部分只要你设置好了!用哪个id都可以
反而我觉得是软件版本的问题。
不同的版本,对socket的实现,肯定是有些不同的!只是mtk有没开放给你看到!
还有soc_gethostbyname 这个函数不用soc_create

我遇到的问题是 消息的响应函数不走,直接重启。而soc_gethostbyname 这个里面到底是怎么走,更是封装到库里面,完全看不到。 --------------------编程问答-------------------- 希望高手指点,我这里也遇到这样的问题,MTK6235平台。如果有这部分源代码就好了,哪位大侠有请联系我,谢谢 --------------------编程问答-------------------- 你的参数设置错了,第三个你应该设置为所创建的SOCKET_id --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- --------------------编程问答-------------------- nwk_account_id需要先激活,转换一下 --------------------编程问答-------------------- 你在调用soc_gethostbyname之前不用调soc_create,soc_gethostbyname最后一个参数要输入nwt_account_id
,nwt_account_id在使用之前需要调用cbm_encode_data_account_id转换一下 --------------------编程问答-------------------- LS正解。
6235 09A平台需要转一下。
之前 6225 07B直接使用14是可以的。
--------------------编程问答-------------------- --------------------编程问答--------------------
补充:移动开发 ,  移动开发其他问题
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,