MTK socket 小结 4

本文主要分析了MTK平台上的socket应用,通过EngineerModeSrc.c和EngineerModeSocketDemoApp.c中的示例,如DNS、ECHO、DAYTIME、TRACERT,详细解释了socket的使用流程,从界面逻辑到实际的socket处理函数mmi_soc_demo_app_request的调用过程。
摘要由CSDN通过智能技术生成

昨天说了下socket基本几个函数,还有常用的是域名解析函数。

// 通过域名获得ip地址
// is_blocking,是否阻塞,现在只支持none block,也最好用none block
// mod_id 如果没有立即获得,那么当查询成完毕,将向该mod 发送消息
// request_id 区分不同的DNS 查询结果。比如在同时查询两个以上,在返回的消息中,就可以通过id来进行区分,这个结果是哪一个查询结果
// addr 如果直接查询到结果,比如命中cache,那么ip地址直接返回
// len 返回的ip地址长度
// access_id 也存放在查询返回消息里面,但不知具体什么用
// nwk_account_id 接入点
kal_int8 soc_gethostbyname(kal_bool is_blocking,
                           module_type     mod_id,
                           kal_int32       request_id,
                           const kal_char  *domain_name,
                           kal_uint8       *addr,
                           kal_uint8       *addr_len,
                           kal_uint8       access_id,
                           kal_uint32      nwk_account_id);

 

接下来具体分析一个例子,socket 例子MTK,自带了一个,在EngineerModeSrc.c 和 EngineerModeSocketDemoApp.c 里,里面有好几个socket使用的例子,DNS,ECHO,DAYTIME,TRACERT。文件 EngineerModeSrc.c 里面主要是界面显示逻辑,EngineerModeSocketDemoApp.c  里面是真正的socket 逻辑代码。

在 EngineerModeSrc.c 里面,选择了相应的选项后,最终会走到函数 EntryEmSocketInProgress 显示正在进行网络连接的界面,它调用 EmSocketSendReq 函数 来简单区分,是选择了哪种应用。EmSocketSendReq  根据相关选择信息,调用mmi_soc_demo_app_request进行真正的socket处理。

// 这个函数主要是主要是根据不同配置,初始化全局信息。
// app_id, 是哪一种操作 NDS,HTTP等等
// account_id , grps 帐户id
// server_ip_address ip地址
// url url 地址,根据不同类型,确定使用ip地址还是url
// echo_txt ,如果是 ECHO,这个表示要发送的内容
// callback 操作的回调函数
int mmi_soc_demo_app_request(
        mmi_soc_demo_app_enum app_id,
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值