live555学习
文章平均质量分 78
zk_sima
这个作者很懒,什么都没留下…
展开
-
UsageEnviroment的分析
<br />UsageEnvironment是live555中最基本的几个基类之一,不过它的功能很简单,就是对错误的处理和输出。<br />在这个类里面有几个虚函数:<br />operator << 用于输出信息<br />setResultMsg 用于设置一个内部字符串(一般用来表示错误信息的)<br />reportBackgroundError 用于报告错误信息。<br /> <br />在live555中是通过BasicUsageEnvrionment来继承UsageEnvironment来原创 2011-03-30 20:46:00 · 1357 阅读 · 0 评论 -
TaskScheduler的分析_1
virtual ~TaskScheduler ()virtual TaskToken scheduleDelayedTask (int64_t microseconds, TaskFunc *proc, void *clientData)=0virtual void unscheduleDelayedTask (TaskToken &prevTask)=0virtual void rescheduleDelayedTask (TaskToken &task, int64_t microseconds, Ta原创 2011-03-31 19:49:00 · 2951 阅读 · 1 评论 -
TaskScheduler的分析_2
<br />前面说到了 在 TaskScheduler中可能包含3个链表。<br />然后我们继续看TaskScheduler的子类 BasicTaskScheduler就可以到里面有一个这个成员变量:<br />DelayQueue <br />fDelayQueue;<br /> <br />fDelayQueue就是我们前面说的其中一个链表,这个链表是跟DelayedTask相关的。<br />然后我们来继续看DelayQueue这个链表类,它的节点是DelayQueueEntry。这是一个双向原创 2011-04-01 16:42:00 · 1142 阅读 · 0 评论 -
TaskScheduler的分析_3
前面提到了跟 DelayTask相关的一个链表,现在来看跟BackgroundHandling相关的另一个链表:HandleSet.这个链表跟:setBackgroundHandlingdisableBackgroundHandlingmoveSocketHandling这3个函数相关。其中setBackgroundHandling根据第二个参数 int conditionSet 是否为零 对应于插入和删除节点的操作。disableBackgroundHanding 对应删除节点操作。moveSocketH原创 2011-04-02 14:53:00 · 1428 阅读 · 0 评论 -
TaskScheduler的分析_4
前面分析了跟TaskScheduler相关的3个链表,那么现在就剩下最后一个doEventLoop函数了。在BasicTaskScheduler0中对doEventLoop进行了实现,它是通过循环调用 SingleStep 来完成功能的。在这里需要提一下为什么要通过 while(1) 这个循环来不停的调用SingleStep,因为在SingleStep中 有 select 函数,对于单线程 网络通讯 select 模型,必须要不停的循环调用select函数(同步阻塞模式),因为select是监控某些端口,原创 2011-04-03 00:13:00 · 3199 阅读 · 0 评论 -
Groupsock的分析_1
<br /> 在进行Groupsock分析之前先复习下 组播(多播)的知识.<br /> 首先组播 是基于 UDP的,所以在后面代码里面会出现:sock(AF_INET,SOCK_DGRAM,0); SOCK_DGARM就是代表是UDP进行通信。<br />然后组播是对应一个D网段的IP,我们需要加入组播才能向组播的成员发送数据或者接受数据,所以代码中会有setsockopt的调用(当然这个函数不光是针对加入组播的)。 最后需要注意的一点是,我们通讯 是在UDP(TCP)之上的某个端口上原创 2011-04-03 18:30:00 · 4177 阅读 · 0 评论 -
Groupsock的分析_2
<br />前面说了Groupsock的基类,现在来整体的分析下Groupsock:<br />首先是:<br /> removeAllDestination<br /> removeDestination<br /> addDestination<br /> changeDestinationParamters<br />这4个成员函数,这几个函数都是跟一个 destRecord链表关联的,成员变量 fDests指向这个链表的表头。<br />从字面意思基本可以得到原创 2011-04-12 18:36:00 · 2558 阅读 · 1 评论