当前位置: 首页 > news >正文

苏州的网站建设公司山东企业网站建设

苏州的网站建设公司,山东企业网站建设,采购网站有哪些,微盟微商城多少钱一年?tsip_stack_handle_t 实例 1. tsip_stack_handle_t的创建 在底层,真正运转的协议栈结构式tsip_stack_handle_t的一个实例,它的创建时机为SipStack类在构造时,也就是说,当上层不管用何种方式触发一个SipStack的创建动作时。…

tsip_stack_handle_t 实例

1.        tsip_stack_handle_t的创建

在底层,真正运转的协议栈结构式tsip_stack_handle_t的一个实例,它的创建时机为SipStack类在构造时,也就是说,当上层不管用何种方式触发一个SipStack的创建动作时。在上层,SipStack会被继续抽象封装,这种封装有可能是封装成为一个java类,一个C#类,但是都不重要,重要的是,这些高层代码类必然关联了一个粘合层的SipStack实例。当粘合层(SipStack.cxx)中得SipStack被创建时,其构造函数会被调用。在它的构造函数类,会调用底层函数tsip_stack_create(…) 创建协议栈结构实例。

 

2.        tsip_stack_handle_t 创建过程

A.     记录通过可变参数传入的一系列变量到stack(tsip_stack_handle_t实例)中。包括服务器地址(假设为:192.168.1.101),本机用户名(假设为:1002),sip-uri(sip:1002@192.168.1.101)。这些都将以字符窜形式记录到对应的stack字段中。

需要注意的是:由于传入的字符串可能是托管资源,因此,这里我们没有必要去显式释放它们。释放他们应该是高层代码的责任(有可能通过托管释放,也有可能需要手动释放)。设置为tsip_stack_set(tsip_stack_handle_t * stack,…)这是一个通过可变参数进行结构类实例设置的函数,设置时通过type-value的形势传递参数,也就是在一系列的可变参数中,其中一对可能是(type: tsip_pname_realm, value:”192.168.1.101”),在该函数内,对于字符串有一个拷贝动作。也就是说,记录的是stack自己管理的内存区。

B.     记录粘合层SipStack提供的回调函数到stack->callback字段,以提供sipevent到来时的回调。在上一节中,可以看到SipStack类提供的回调函数为:

Int stack_callback(tsip_event_t *);

C.     创建一个基于stack的全局timer管理结构,用来处理该协议栈中各种需要定时器功能的模块,在后面我们可以看到,对于一个dialog的四种事物:tsip_trsaction_ict,

tsip_trsaction_ist, tsip_trsaction_nict, tsip_trsaction_nist,都需要有定时重传的机制,这里仅仅是创建了这个定时管理结构,还没有启动该定时线程,定时线程稍后会在start stack 的时候启动,定时线程拥有两个队列:收集队列和分发队列。

D.     创建一个sessions的队列,用来管理基于该stack的各种session。

E.      最后创建三个层,可以说,sip协议是层次分明的,上层提供给下一层的回调,下一层将sip消息处理后传递给上一层处理,这是典型的网络处理方式。

三个层次为:

struct tsip_dialog_layer_s *layer_dialog;

          struct tsip_transac_layer_s *layer_transac;

struct tsip_transport_layer_s *layer_transport;

分别是对话层,事物层和传输层,具体关系以后分析。

3.        对于tsip_stack_t(tsip_stack_handle_t 是其别名) 结构而言,定义也是明晰的。

   /* 3GPP IMS/LTE stack (forinternal use). only tsip_stack_handle_t should be visible. */

typedef struct tsip_stack_s

{

     TSK_DECLARE_RUNNABLE;//用于标志该结构是一个可以运行run()线程的结构

    

     tsk_bool_t timer_mgr_started;   //全局定时器启动标志

     tsk_bool_t started;             //协议栈启动标志

     tsip_stack_callback_f callback;//记录粘合层的回调函数

      

          

     tsip_uris_L_t* paths;

     tsip_uris_L_t* service_routes;

     tsip_uris_L_t* associated_uris;

     /* DNS context */

     tnet_dns_ctx_t *dns_ctx;

    

     /* DHCP context */

     /* QoS */

     /* Internals. */

     //tsk_timer_manager_handle_t* timer_mgr;

     tsip_timers_t timers;

     tsip_ssessions_L_t *ssessions;    //会话队列

     tsk_params_L_t *headers;          //记录的各种键值对

     const void* userdata;             //上层用户私有数据,一般记录粘合层SipStack实例地址

     /* Layers */

    

}

tsip_stack_t;

转载于:https://www.cnblogs.com/fuland/p/3654841.html

http://www.lbrq.cn/news/2487421.html

相关文章:

  • 互联网创业项目名称灯塔网站seo
  • 镇江做网站保定网站建设报价
  • 可以做网站的编程有什么百度一下一下你就知道
  • 中国建设银行积分商城网站网络营销的主要方法
  • 湖南网站建设kaodezhu广告关键词有哪些类型
  • 网站开发的工作内容万网官网域名注册
  • 给个网址2021年能看的seo体系百科
  • 商城网站建设定制网站建设培训网站官网
  • 厦门市建设管理协会网站首页什么是营销
  • 男女做那个的免费视频网站我是新手如何做电商
  • 各地平台网站手机百度引擎搜索入口
  • 青岛网站建设方案书seo优化推广
  • 北京餐饮培训网站建设南京市网站
  • 北京网站建设方案书做做网站
  • 晋中路桥建设集团网站网站seo顾问
  • 杭州做公司网站哪家好电商数据分析
  • ps简单网页设计模板图片广州品牌seo推广
  • 零陵做网站seoheuni
  • 什么样的网站需要备案seo模拟点击有用吗
  • 怎么做应援网站百度品牌专区
  • 包包网站建设什么是搜索引擎营销?
  • 做网站时量宽度的尺子工具适合seo优化的网站
  • 百度商桥怎么接网站营销策略包括哪些内容
  • 中山市建设局网站产品营销策划方案3000字
  • 自己做的网站为什么访问不互联网广告平台代理
  • 专做立体化的网站谷歌seo一个月费用需要2万吗
  • 建网站权威公司百度问答
  • 网页的网站建设在哪里营销策划与运营公司
  • 哪些网站专门做动漫的深圳知名seo公司
  • 品牌网站建设推广智能建站模板
  • 【Typora】分享一款很好用的PJ版本的Markdown编辑器
  • 文件权限标记机制在知识安全共享中的应用实践
  • 高性能网络DPDK、RDMA、XDP初探
  • 1. Qt多线程开发
  • 【AI论文】MiroMind-M1:通过情境感知多阶段策略优化实现数学推理的开源新进展
  • kali [DNS劫持] 实验(详细步骤)