- 博客(17)
- 资源 (3)
- 收藏
- 关注
转载 实现RTP协议的H.264视频传输系统
1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒
2013-11-06 08:58:22
814
1
转载 flv格式详解
FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们
2013-10-21 15:26:53
890
转载 rtp
自己动手写RTP服务器——用RTP协议传输TS流上一篇文章我们介绍了关于RTP协议的知识,那么我们现在就自己写一个简单的传输TS流媒体的RTP服务器吧。预备知识关于TS流的格式:TS流封装的具体格式请参考文档ISO/IEC 13818-1。这里我们只需要了解一些简单的信息就好。首先TS流是有许多的TS Packet组成的,每个TS Packet的长度固定为188
2013-10-17 10:47:40
775
转载 BMP图像格式学习
对应数据结构1:BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。2:BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。其结构定义如下:123456789101112
2013-09-30 11:30:49
871
转载 bdb入门第一步
NoSQL是现在互联网Web2.0时代备受关注的技术之一,被用来存储大量的非关系型的数据。Berkeley DB作为一款优秀的Key/Value存储引擎自然也在讨论之列。最近使用BDB来发一个KV系统,并将这段时间的BDB的学习和使用经验记录如下。(项目中使用了BDB的4.8.30版本,本文所有涉及的具体问题都基于该版本)。 1. Berkeley DB的简介Berke
2013-09-30 09:28:42
3364
原创 linux 通信
and_tt(转)深刻理解Linux进程间通信(IPC)深刻理解Linux进程间通信(IPC)0. 序1. 管道1.1. 管道概述及相关API应用1.2. 有名管道概述及相关API应用1.3. 小结1.4. 参考资料2. 信号(上)2.1. 信号及信号来源2.2. 信号的种类2.3. 进程对信号的响应2.4.
2013-08-09 17:07:15
1078
转载 让程序只运行一个实例的四种方法
源代码下载:http://d.download.csdn.net/down/907655/magictong 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。
2013-08-03 16:31:35
599
转载 linux 备份和还原
在使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZI
2013-07-28 11:33:44
490
转载 备份linux系统
1.我该用什么来备份我的系统呢? 也许你会问。小事一桩,就像你备份或压缩一个别的文件一样,TAR。不像Windows,Linux不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中。 来实施这一方法,用这个成为根用户: sudo su 接着去你的文件系统的根目录(在我们的例子中,我们使用它,不过你可以去你希望备份的任何地方,
2013-07-23 16:36:55
464
原创 Linux下C线程池的实现
一个Linux下C线程池的实现 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CTh
2013-07-05 10:47:12
542
原创 IO多路复用
与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。主要应用:(1)客户程序需要同时处理交互式的输入和服务器之间的网络连接(2)客户端需要对多个网络连接作出反应(3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字(4)服务器需要处理多个网络协议的套接字(5)服务器需要同
2013-07-02 18:18:40
526
转载 select模型讲解
Select模型原理利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入阻塞状态。 select参数和返回值意义如下:int select ( IN int nfds, //0
2013-07-02 14:28:05
924
转载 Epoll模型详解
2011-09-18 02:46:29| 分类: Linux编程|字号 订阅 Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__F
2013-07-01 10:49:23
433
转载 epoll原理
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。
2013-07-01 10:33:16
482
转载 Berkeley db使用方法简介(c接口)
1. 打开数据库首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调用中指定DB_CREATE标记。以下代码示范了如何打开数据库:#include ...DB *dbp; /* DB structure handle */u_
2013-06-26 14:02:10
1046
转载 linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式
2013-06-25 16:08:32
435
转载 epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2013-06-25 10:16:36
447
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人