zoukankan      html  css  js  c++  java
  • 网络监听Network Daemon(Android Netd)架构和源码分析网络监听

    本篇文章笔者在北京游玩的时候突然想到的...近期就有想写几篇关于网络监听的博客,所以回家到之后就奋笔疾书的写出来布发了

        平台: RK3066 ARM9核双 Android4.1

        

    一 Network Daemon(netd)功能概述:

        Netd是Android的网络护守程进。NetD是个网络管家,封装了庞杂的底层各种类型的网络(NAT,PLAN,PPP,SOFTAP,TECHER,ETHO,MDNS等),隔离了底层网络接口的差异,给Framework供提了同一用调接口,简化了网络的用使。NetD主要功能是:第一、收接Framework的网络请求,处置请求,向Framework层反馈处置结果;第二、监听网络事件(断开/连接/错误等),向Framework层上报。
        NetD程序的大概逻辑: [Kernel] <--Network Event--> (NetD) <--Command--> [Framework]。事件和令命传送采取跨程进信通机制(SOCKET)。

        

    二 Network Daemon(netd)码源分析:

    Netd:
    /System/netd
    /system/core/libsysutils/src
    /system/core/include/sysutils
    Framework:
    /frameworks/base/services/java/com/android/server
    
    int main() {   
        NetlinkManager *nm = NetlinkManager::Instance();
      
        /*实例化一个令命监听示例,监听Framework令命,处置完成后复恢Framework层*/
        CommandListener *cl = new CommandListener(); 
        nm->setBroadcaster((SocketListener *) cl); 
    
    
        /*开启监听内核网络事件程线*/
        nm->start();
        /*cl 开启程线,监听 framework 层下发的令命,并用调相干函数处置 */  
        cl->startListener();
    
    
        /*置设为内网DNS式模*/
        setenv("ANDROID_DNS_MODE", "local", 1);
        DnsProxyListener *dpl = new DnsProxyListener();  
        dpl->startListener();
     
        /*播多DNS*/
        MDnsSdListener *mdnsl = new MDnsSdListener();  
        mdnsl->startListener();
    }

    三 Network Daemon(netd)架构分析:



        

    四 如果与Network Daemon(netd)交互:

        

    网络护守程进netd,有很多功能,程序可以通过它查询各种网络的状态或拦截各种网络事件。上面就用以布发一个网络服务为例说明,体具的一个程序如何与net交互。

        


        

    文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗   
      写字楼里写字间,写字间里程序员;
      程序人员写程序,又拿程序换酒钱。
      酒醒只在网上坐,酒醉还来网下眠;
      酒醉酒醒日复日,网上网下年复年。
      但愿老死电脑间,不愿鞠躬老板前;
      奔驰宝马贵者趣,公交自行程序员。
      别人笑我忒疯癫,我笑自己命太贱;
      不见满街漂亮妹,哪个归得程序员。

  • 相关阅读:
    2.2 与球体相交-几何解
    2.1 与球体的交点 -代数解
    2 必要的光线追踪算法=>光线球体的相交和映射
    3.1 Matrix Properties
    chapter 3:Matriices
    4.8 渲染方程
    webstorm 皮肤(Sublime text)设置
    数字键盘(纯js)
    ios中设置readonly还会有光标?
    JS重要的坑
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3031592.html
Copyright © 2011-2022 走看看