- 博客(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 1115
转载 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 3075 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 1031
原创 调试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 721
转载 VMware】虚拟机安装ubuntu的时候卡在vmwaretools :installing vmware tools please wait
出现下面这个****************************************************************** ****************************************************************** Vmware Easy Install PLEASE WAIT! VMware Tools is currently b
2013-05-14 14:34:01 5638
转载 【流媒體】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 3218
原创 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 918
转载 结构体中的函数指针与函数
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
内核分析—中断
2013-02-21
Google_C++编码规范_中文.pdf
2012-10-15
memcached_allocator_slab_langwan
2012-08-22
Memory System on Fusion APU
2012-06-29
AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide
2012-06-28
Git-2.14.1-64-bit.exe
2017-09-22
Onvif对接Rtsp实时媒体流(基于live555)
2017-09-22
RFC2326(RTSP) 中文版
2013-05-09
RFC3550中文版 (RTP/RTCP)
2013-05-09
Google C++编程风格指南.pdf
2013-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人