关闭

WebRTC手记之初探

转载请注明出处:http://www.cnblogs.com/fangkm/p/4364553.html  WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRT...
阅读(196) 评论(0)

C运行时库

一、什么是C运行时库 1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本...
阅读(240) 评论(0)

常见的排序算法进行讲解和总结

所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。当待排序记录的关键字都不相同时,排序结果是惟一的,否则排序结果不惟一。 排序的稳定性:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生改变,则称这种排序方法是不稳定的。要注意的是,排序算法的稳定性是针...
阅读(624) 评论(0)

C/C++中自动类型转换的规则

C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上。 隐式类型转换发生在下列这些典型情况下: 1. 在混合类型的算术表达式中 在这种情况下最宽的数据类型成为目标转换类型,这也被称为算术转换,例如:   int ival = 3; double dval = 3.14159; //ival 被提升为double类型: 3.0 i...
阅读(410) 评论(0)

基于WaveX低级音频函数的实时语音通信

1. 摘要         本文介绍了基于WaveX低级音频API采集音频及实时播放的技术。并对音频实时性和连续性作了比较深入的分析。利用双/多缓冲技术和网络拥塞控制策略可很好的控制音频的实时性和连续性。 2. 背景介绍         WINDOWS下音频的采集,播放有三种模式:         1)通过高级音频函数、媒体控制接口MCI[1、2]设备驱动程序;...
阅读(443) 评论(0)

80X86汇编寄存器汇总

数据寄存器: AX:累加器 BX:基址寄存器 CX:计数寄存器 DX:数据寄存器 段寄存器: CS:代码段段寄存器 DS:数据段段寄存器 SS:堆栈段段寄存器 ES:附加段段寄存器 地址指针寄存器: BX:基址寄存器 SP:堆栈寄存器 BP:基址指针寄存器 SI:源变址寄存器 DI:目的寄存器 控制寄存器: IP:指令指针寄存器 FR:标志寄存器...
阅读(390) 评论(0)

内存地址对齐

内存地址对齐,是一种在计算机内存中排列数据、访问数据的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构体数据对齐。当今的计算机在计算机内存中读写数据时都是按字(word)大小块来进行操作的(在32位系统中,数据总线宽度为32,每次能读取4字节,地址总线宽度为32,因此最大的寻址空间为2^32=4GB,但是最低2位A[0],A[1]是不用于寻址,A[2-31]才能存储器相连,因此只能...
阅读(286) 评论(0)

sleep函数

学习source,看到了下面一段代码 try {             Thread.sleep(2000);         } catch (InterruptedException e) { } 首先这段代码的作用是使当前进程沉睡2S,展现给用户的结果就是画面维持两秒,有个“正在启动”的感觉而已。 其实,之前还有看到过sleep(0)的时候,这又是什么作用呢? 百度之,搜到一...
阅读(616) 评论(0)

事件内核对象 event对象 和MFC中 CEvent类

event是用来同步不同线程的。一旦一个线程结束了自己对全局资源的使用,他通过调用SetEvent通知别人可以使用了。如果这个被删了,其他线程将被阻塞 当一个线程里调用了::WaitForSingleObject(pEvent->m_hObject, INFINITE);时,会在这句上等待,而不往下操作,这时你就要用SetEvent将这等待改变,让线程能继续往下执行; 总的来说,这是用于线程同...
阅读(1104) 评论(0)

在MFC中添加用户自定义消息

首先弄清楚两点: (1)谁要发送这个消息(2)谁要接受这个消息。   用一个简单的例子来说明。对象A向B(也可以就是A到A)发送消息。   1 发送消息   首先在A的头文件中定义这个消息:     #define WM_USERMESSAGE WM_USER+30      所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。A是向外发送消息...
阅读(568) 评论(0)

Socket的阻塞模式和非阻塞模式

Socket的阻塞模式和非阻塞模式 来源:http://blog.csdn.net/VCSockets/ 阻塞模式   Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。...
阅读(327) 评论(0)

Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。             于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。            后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比...
阅读(508) 评论(0)

数组名a 作为 左值和 右值的区别

比如:x=y 左值:在这个上下文环境中,编译器认为x的含义是x所代表的地址。这个地址只有编译器知道,在编译的时候确定,编译器在一个特定的区域保存这个地址,我们完全不必考虑这个地址保存在哪里。 右值:在这个上下文环境中,编译器认为y的含义是y所代表的地址里面的内容。这个内容是什么,只有到运行时才知道。 C语言引入一个术语——“可修改的左值”。意思就是,出现在赋值符左边的符号...
阅读(304) 评论(0)

MFC中多线程编程方法

来自《http://www.programfan.com/article/showarticle.asp?id=2951》   当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的...
阅读(461) 评论(0)

c++中sizeof的分析

sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。 MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggrega...
阅读(246) 评论(0)
20条 共2页1 2 下一页 尾页
    个人资料
    • 访问:11682次
    • 积分:153
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:20篇
    • 译文:0篇
    • 评论:0条