osip库触发释放栈区对象引起崩溃的时机

    osip库提供的不仅仅是一个单线程的解决方案,同时也是一个多线程的解决方案,但是我们在此一无所知,我们知道的一点:就是osip_event_free没有我们想象的那样:我们可以随意的调用,在这里肯定是有一个时机的,不要被自己的本身代码所蒙骗。深刻理解其中的奥义,确实非常有帮助:判断程序的稳定和健壮。程序在220X10毫秒内崩溃。

测试的方案如下:

while()

{

eXosip_event_wait();

//do something

osip_cseq_set_number(reg->cseq,"2");

eXosip_event_free();

::Sleep(1000);

}

测试的结果是非常的明显:

大概是4秒内,就会出现问题,看来osip没有想象的简单。

头脑中想到这是一个多线程,也就是当我们完整一个事件的应答之后,程序并没有马上执行free,相反,它很可能正在接收其他的请求或者处理

其他的应答。

osip_MT多线程使用的线程函数确实非常的有能力扩展程序的移植性

任何知识的运用必须依赖于长久时间的积累,才能够做到真正的厚积薄发.

      现在刚刚接触到SIP协议,对于其中大部分的头域(Header Filed),没有深刻的理解,对于contact头域和via头域,直接影响到所有的数据发送和接收,尤其是到底如何获取客户端的信息,从何而来,想来是非常重要的。而这一点最最重要的是对于RFC2543文档的详细描述。很多情况下面,对于头域的提取不正确导致的是整个系统发送错误的信息。


你可能感兴趣的:(Something)