自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (52)
  • 收藏
  • 关注

转载 注册与回调

1. 何为回调(callback) 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B叫甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通

2013-05-29 10:06:24 782

转载 Windows下与Linux下编写socket程序的区别表

Windows下与Linux下编写socket程序的区别表发布时间: 2007-09-01 22:08    来源: 易孚网站系统  【Windows】【Linux】头文件的区别#include#include#include#include#include#include#include#include

2013-05-28 09:09:19 1109

转载 Wireshark抓包工具使用教程以及常用抓包规则

Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但是只要你有解决问题的思路,学习用这个软件就非常有用了。Wireshark官方下载地址:http://www.wireshark.org/download.html如果记不住,可以在百度中输入W

2013-05-27 16:00:57 1114

转载 select:windows pipe的模拟

在进行socket编程时,经常会采用select或epoll来接受并发请求。在有些系统里面(例如嵌入式设备),是不支持epoll的,这时只能用select。Select定义如下: int select(int n, fd_set *rd_fds, fd_set *wr_fds, fd_set *ex_fds, struct timeval *timeout);在进行select的时候,

2013-05-26 16:07:38 2080

转载 用管道(pipe)使消息队列通知(mq_notify)可以在Select和poll中使用

这是在Unix网络编程第二卷进程间通信中看到的一个技巧。它使得posix消息队列的mq_notify可以在select中使用。具体方法为:1、建立管道;2、在主线程中用select监听管道的读事件;3、在mq_notify的时间处理程序中往管道里写数据,通知主线程只是不知道这样做,效率怎么样。UNP-IPC有一段实例代码,如下:1 #include "unpi

2013-05-26 16:04:40 2705

转载 live555学习(二十一) --多线程

先看live555官网的回答:Is this code 'thread safe'? I.e., can it be accessed by more than one thread at the same time?Short answer: No. As noted above, the code assumes a single thread of execution, us

2013-05-26 14:26:19 2963 1

转载 select

(1)阻塞block    所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。    例如socket编程中connect、accept、recv、recvfrom这样的阻塞程序。    再如绝大多数的函数调用、语句执行,严格来说,他们都是以阻塞方式执行的。(2)非阻塞non-block

2013-05-24 14:09:22 798

转载 select

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式

2013-05-24 13:48:16 659

转载 RTSP SET PARAMETER

10.9 SET PARAMETER此方法给URI指定的表示或媒体流设置参数值。帮助客户端检查某个特殊的请求为何失败的请求(晕~)应该只附带一个参数。当请求附带多个参数时,服务器只有在这些参数全都设置正确时才作出响应。服务器必须允许某个参数被重复设置成相同的值,但可能不允许改变参数值。注意:必须只能使用SETUP命令来给媒体流设置传输参数。限制只有SETUP能设置传输参数有利于防火

2013-05-24 10:46:27 3073 2

转载 listen函数中backlog参数的意义

1.MSDN上的解释The listen function places a socket in a state in which it is listening for an incoming connection.int listen( SOCKET s, int backlog);s [in] Descriptor identifying a bound,

2013-05-22 10:21:38 1030

原创 调试live555 vs2010

从一位学长那里学到的 感谢哲哥!前提是live555可以运行 1、live555MediaServer.cpp中的main()函数开始添加while(1){};2、设置断点:在while里设断点1,还需要设置一个断点2,等会直接停在断点2处,随便在程序能运行到的地方设一个void BasicTaskScheduler::SingleStep(unsigned

2013-05-21 15:24:38 1178

转载 [协议原理] [原创] 图像、帧、片、NALU

图像、帧、片、NALU 是学习 H.264 的人常常感到困惑的一些概念,我在这里对自己的理解做一些阐述,欢迎大家讨论:H.264 是一次概念的革新,它打破常规,完全没有 I 帧、P帧、B 帧的概念,也没有 IDR 帧的概念。对于 H.264 中出现的一些概念从大到小排序依次是:序列、图像、片组、片、NALU、宏块、亚宏块、块、像素。这里有几点值得说明:(1)、在 H.264 协议中

2013-05-17 15:06:31 574

转载 FAQ LIVE555

Why do most RTP sessions use separate streams for audio and video? How can a receiving client synchrSending audio and video in separate RTP streams provides a great deal of flexibility. For example,

2013-05-15 17:24:34 1377

原创 live555学习 转载 + 原创

LIVE555不支持实时流 需要自己实现 1. RTSP连接的建立过程      RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。      首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554 端

2013-05-15 17:12:37 966

转载 live555 Streaming Media 分析与开发 .

因需要,从个人的理解顺序和需求角度对live555的分析与开发整理,包含RTSP Server与RTSP Client、如何直播H.264流与JPEG流等,均进行了探讨,对live555的初学者有一定的指导意义。本人习惯使用excel归档,所以本文均为excel的截图,源文件可以再资源中下载。转自http://blog.c

2013-05-15 16:37:12 720

转载 VMware】虚拟机安装ubuntu的时候卡在vmwaretools :installing vmware tools please wait

出现下面这个****************************************************************** ****************************************************************** Vmware Easy Install PLEASE WAIT! VMware Tools is currently b

2013-05-14 14:34:01 5637

转载 【流媒體】live555—VS2010 下live555编译、使用及测试

Ⅰ live555简介  Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经

2013-05-10 09:50:20 796

转载 RTP/RTSP/RTCP的区别 .

用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP Header中做扩展定义实现的。另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即可。

2013-05-09 10:43:16 714

转载 ‘\n’ 换行符

不同计算机上c语言统一规定为:文本文件的行结束符一律变成一个符号LF,也就是换行符,也就是new line符, 也就是'\n'.“回车和换行符转换成一个换行符”-- 对PC机而言,文本文件行结束符,CRLF读入后,丢掉CR,留   LF.例如fgets() 读入一行,行尾只有LF,没有CR.换行(\n)就是光标下移一行却不会移到这一行的开头,回车(\r)就是回到当前行的开头

2013-05-07 14:02:18 3076

原创 The C Programming Language 学习笔记

单引号的字符表示一个整数,该值等于此字符在机器字符集中对应的数值,我们称之为字符常量。但是他只不过是小的整型数的一种写法而已。例如,'A'是一个字符常量,在ASC字符集中其值是65(即‘A’的内部表示值是65),当然,用‘A’比65好,因为‘A’的意义更明确。习题1-8Exercise 1-8 Write a program to count blanks, tabs, and newlines

2013-05-07 09:53:38 954 1

转载 C语言里的左移和右移运算

先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用int i = 1;i = i 也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面

2013-05-06 11:35:30 917

原创 struct中的函数

结构体里面的函数不占用结构体的空间

2013-05-06 10:18:54 973

转载 结构体中的函数指针与函数

1. 函数指针  一般的函数指针可以这么定义:  int(*func)(int,int);  表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:  int add2(int x,int y)  {  return x+y;  }  那么在实际使用指针func时可以这样实现:  func=&add2; //指针赋值,

2013-05-06 09:34:20 832

内核分析—中断

1. 中断 1. 软中断 2. 硬中断 3. 定时器代码分析 4. from aka 1. 硬件中断 2. 软中断 5. from lisolog 1. index 2. 内部中断 3. 外部中断 4. 后续处理 6. 软中断代码线索 7. 2. 4软中断机制

2013-02-21

Google_C++编码规范_中文.pdf

李开复: 刚才发现Google的C++编码规范已经公开了,那就说两句,我认为这是地球上最好的一份C++编程规范,没有之一,建议广大国内外IT研究使用。 是google的 C++编码规范,确实很好的文档,各位有兴趣可以翻阅

2012-10-15

无锁编程简介

无锁编程简介 清晰明了 适合刚接触无锁编程的人

2012-08-31

memcached-1.2.6-win32-src

memcached的windows下可以运行的代码,win32版本的

2012-08-27

memcached_allocator_slab_langwan

memcached_allocator_slab_langwan.pdf,一位高手写的关于memcached的slab分配及LRU机制,清晰明了,一看就懂,谢谢作者!

2012-08-22

understand2.0

很强大的代码分析工具 帮你快速的分析出代码结构 流程

2012-08-18

memaslap 使用说明

memaslap 使用说明 基于ubuntu 11.04 memcached 测试环境搭建

2012-08-10

Google_C++_Style_Guide

Google的编码规范 让你的代码更清晰 可读性更强 编程必备

2012-07-31

The OpenCL Specification

The OpenCL Specification Khronos OpenCL Working Group写的

2012-07-24

AMD APP SDK 安装指南

AMD APP SDK 安装指南 可以让一个新手快速的安装上AMD APP SDK 包括windows和linux

2012-07-23

memcached 网络部分详解

自己总结的memcached的网络部分,主要是TCP 套接字编程方面,有兴趣的可以看看。

2012-07-02

Memory System on Fusion APU

讲述了APU上的GPU访问内存的模式,有很多小的code sample,方便理解和学习opencl编程(GPU优化方面)。

2012-06-29

AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide

AMD出的教程,全面,深入浅出,看完这本书就可以完全掌握opencl并行了

2012-06-28

POSIX多线程程序设计中文版

经典中的经典,不多说,浅显易懂,跨平台开发必备的书籍。

2012-06-27

Skype 聊天软件

很好的聊天软件,免费打电话,发信息,使用起来非常方便

2012-06-27

SourceInsight

很好的代码分析软件,让你更方便的读代码,跟踪代码。

2012-06-27

Heterogeneous.Computing.with.OpenCL.pdf

很权威的一本书 详细讲解了Opencl在异构系统下的开发,很适合初学者入门

2012-06-27

Git-2.14.1-64-bit.exe

Git-2.14.1-64-bit.exe git for windows. Git-2.14.1-64-bit.exe git for windows. Git-2.14.1-64-bit.exe git for windows.

2017-09-22

Onvif对接Rtsp实时媒体流(基于live555)

Onvif对接Rtsp实时媒体流(基于live555);Onvif对接Rtsp实时媒体流(基于live555);Onvif对接Rtsp实时媒体流(基于live555)

2017-09-22

onvif源码(V2.4)

v2.4版本的onvif源代码,实现了客户端和服务器的发现功能。v2.4版本的onvif源代码,实现了客户端和服务器的发现功能。

2017-09-22

C语言经典编程900例 经典标准代码 源代码

C语言经典编程900例 经典标准代码 源代码

2013-07-01

RFC2326(RTSP) 中文版

实时流协议(RTSP)是应用层协议,控制实时数据的传送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP(RFC1889)上传送机制提供方法。

2013-05-09

RFC3550中文版 (RTP/RTCP)

本文描述RTP (real-time transport protocol),实时传输协议。RTP 在多点传送(多播) 或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据, 如:音频,视频或者仿真数据。RTP 没有为实时服务提供资源预留的功能,也不能保证QoS (服 务质量)。数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据 传输进行监测控制,该协议(RTCP)可以升级到大型的多点传送(多播)网络,并提供最小限 度的控制和鉴别功能。RTP 和RTCP 被设计成和下面的传输层和网络层无关。协议支持RTP 标 准的转换器和混合器的使用。 本文的大多数内容和旧版的RFC1889 相同。在线路里传输的数据包格式没有改变,唯一的改变 是使用协议的规则和控制算法。为了最小化传输,发送RTCP 数据包时超过了设定的速率,而 在这时,很多的参与者同时加入了一个会话,在这样的情况下,一个新加入到(用于计算的可升 级的)计时器算法中的元素是最大的改变。 目录(Table of Contents) 1. 引言 (Introduction) 1 1 术语(Terminology) 2 RTP使用场景(RTP Use Scenarios) 2 1 简单多播音频会议( Simple Multicast Audio Conference) 2 2 音频和视频会议(Audio and Video Conference) 2 3 混频器和转换器(Mixers and Translators) 2 4 分层编码(Layered Encodings) 3 定义(Definitions) 4 字节序,校正和时间格式(Byte Order, Alignment, and Time Format) 5 RTP数据传输协议(RTP Data Transfer Protocol) 5 1 RTP 固定头域(RTP Fixed Header Fields) 5 2 多路复用RTP 会话(Multiplexing RTP Sessions) 5 3 RTP 头的配置文件详细变更(Profile-Specific Modifications to the RTP Header) 5 3 1 RTP 报头扩展(RTP Header Extension) 6 RTP控制协议(RTP Control Protocol)-- RTCP 6 1 RTCP包格式(RTCP Packet Format) 6 2 RTCP传输间隔(RTCP Transmission Interval) 6 2 1 维护会话成员数目(Maintaining the number of session members) 6 3 RTCP包的发送与接收规则(RTCP Packet Send and Receive Rules) 6 3 1 计算RTCP 传输间隔(Computing the RTCP Transmission Interval ) 6 3 2 初始化(Initialization) 6 3 3 接收RTP 或RTCP (非BYE)包(Receiving an RTP or Non-BYE RTCP Packet) 6 3 4 接收RTCP (BYE)包(Receiving an RTCP BYE Packet) 6 3 5 SSRC 计时失效(Timing Out an SSRC ) 6 3 6 关于传输计时器的到期(Expiration of Transmission Timer) 6 3 7 传输一个 BYE 包(Transmitting a BYE Packet) 6 3 8 更新we_sent (Updating we_sent) 6 3 9 分配源描述带宽(Allocation of Source Description Bandwidth ) 6 4 发送方和接收方报告(Sender and Receiver Reports) 6 4 1 SR:发送方报告的RTCP包(SR: Sender report RTCP packet) 6 4 2 RR:接收方报告的RTCP 包(RR: Receiver Report RTCP Packet) 6 4 3 扩展发送方和接收方报告(Extending the Sender and Receiver Reports ) 6 4 4 分析发送方和接收方报告(Analyzing Sender and Receiver Reports ) 6 5 SDES:源描述RTCP包(SDES: Source description RTCP packet) 6 5 1 CNAME:规范终端标识符的SDES 数据项(CNAME: Canonical End-Point Identifier SDES Item) 6 5 2 NAME:用户名的SDES 数据项(NAME: User name SDES item) 6 5 3 EMAIL:电子邮件地址的SDES 数据项(EMAIL: Electronic Mail Address SDES Item) 6 5 4 PHONE:电话号码的SDES 数据项(PHONE: Phone Number SDES Item) 6 5 5 LOC:地理用户地址的SDES 数据项(LOC: Geographic User Location SDES Item) 6 5 6 TOOL:应用程序或工具名字的SDES 数据项(TOOL: Application or Tool Name SDES Item) 6 5 7 NOTE:通知/状态的SDES 数据项(NOTE: Notice/Status SDES Item) 6 5 8 PRIV:私有扩展的SDES 数据项(PRIV: Private Extensions SDES Item) 6 6 BYE:Goodbye RTCP 包(BYE: Goodbye RTCP packet) 6 7 APP:定义应用程序的RTCP 包(APP: Application-Defined RTCP Packet) 7 RTP转换器和混频器(RTP Translators and Mixers) 7 1 概述(General Description ) 7 2 在转换器中的RTCP 数据处理(RTCP Processing in Translators) 7 3 在混频器中的RTCP 数据处理(RTCP Processing in Mixers ) 7 4 级联混频器(Cascaded Mixers) 8 SSRC 标识符的分配和使用(SSRC Identifier Allocation and Use) 8 1 冲突概率(Probability of Collision ) 8 2 冲突解决和循环检测(Collision Resolution and Loop Detection) 8 3 在分层编码中使用(Use with Layered Encodings) 9 安全(Security ) 9 1 机密性(Confidentiality) 9 2 身份验证和消息完整性(Authentication and Message Integrity ) 10 拥塞控制(Congestion Control) 11 网络和传输协议之上的RTP (RTP over Network and Transport Protocols) 12 协议常量摘要(Summary of Protocol Constants) 12 1 RTCP 包类型(RTCP Packet Types) 12 2 SDES 类型(SDES Types) 13 RTP 概况和负载格式详细说明 (RTP Profiles and Payload Format Specifications) 14 安全考虑(Security Considerations) 15 IANA 考虑(IANA Considerations) 16 知识产权声明(Intellectual Property Rights Statement) 17 鸣谢(Acknowledgments) 附录A 算法(Algorithms) 附录A 1 RTP 数据头有效性检查(RTP Data Header Validity Checks ) 附录A 2 RTCP 数据头有效性检查(RTCP Header Validity Checks) 附录A 3 确定RTP包预期数目和丢失数目(Determining Number of Packets Expected and Lost) 附录A 4 生成SDES RTCP包(Generating RTCP SDES Packets) 附录A 5 解析RTCP SDES 包(Parsing RTCP SDES Packets) 附录A 6 生成32位随机标识符(Generating a Random 32-bit Identifier 附录A 7 计算RTCP 传输间隔(Computing the RTCP Transmission Interval) 附录A 8 估测两次到达间隔的抖动(Estimating the Interarrival Jitter) 附录B 与RFC1889 不同之外(Changes from RFC 1889) 参考书目(References) 标准化引用(Normative References ) 资料性引用(Informative References) 作者地址 完整的版权声明

2013-05-09

The C Programming Language中文第二版的习题答案

对应于c programming language中文第二版的习题答案

2013-05-07

Linux下面如何进行C语言编程技术教程.pdf

教你在Linux下面如何进行C语言编程技术教程 最基础的教程 gcc + makefile 一看就懂

2013-05-03

深入Linux设备驱动程序内核机制- 扫描版-有书签目录

深入Linux设备驱动程序内核机制 讲解的非常不错

2013-04-22

Google C++编程风格指南.pdf

Google 的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的 语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于 阅读和维护。 本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则 可在允许代码有效使用C++语言特性的同时使其易于管理。 风格,也被视为可读性,主要指称管理C++代码的习惯。使用术语风格有点用词不当,因为这 些习惯远不止源代码文件格式这么简单。 使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一 编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用 语和模式可以使代码更加容易理解,在某些情况下改变一些编程风格可能会是好的选择,但我们 还是应该遵循一致性原则,尽量不这样去做。 本指南的另一个观点是C++特性的臃肿。C++是一门包含大量高级特性的巨型语言,某些情况 下,我们会限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题,指南中列举了这 类特性,并解释说为什么这些特性是被限制使用的。 由Google 开发的开源项目将遵照本指南约定。 注意:本指南并非C++教程,我们假定读者已经对C++非常熟悉。

2013-04-19

LINUX 设备驱动开发详解 源码

LINUX 设备驱动开发详解 + 源码 非常有用

2013-03-20

UNIX网络编程第二卷

UNIX网络编程第二卷 进程间通信 经典书籍

2013-03-14

Unix网络编程

《Unix网络编程》这本书,一通百通,无论Windows还是Unix/Linux,都是一样的

2013-03-14

UNIX编程艺术[中文版]

UNIX编程艺术[中文版] ,看完以后,你就明白什么是真正的编程文化了

2013-03-14

内核协议栈数据包转发完全解析

内核协议栈数据包转发完全解析

2013-03-06

Linux多核绑定硬件中断到不同 CPU

Linux多核下绑定硬件中断到不同 CPU

2013-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除