为什么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 请求的。 --------------------编程问答--------------------
我用的是MTK6235的开发平台。手机也设置了GPRS接入点,分别设置为cmwap和cmnet,试过了,都不行。 --------------------编程问答-------------------- 你的手机能上网么 --------------------编程问答--------------------
能上网,可以浏览网页。 --------------------编程问答-------------------- 第一步错了!
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是可以的。
--------------------编程问答-------------------- --------------------编程问答--------------------
补充:移动开发 , 移动开发其他问题