- 博客(30)
- 资源 (7)
- 收藏
- 关注
原创 stl vector 内存管理
size是指容器当前拥有元素的个数,而capacity是指容器在必须分配新的存储空间之前可以存放的元素总数。如vector ivect(10),ivect.capacity()=10,ivect.size()=0,当你向ivect中插入元素时,只要没有超过十个,那么capacity就不变,而size为你插入的元素的个数。当你插入第十个时,capacity=size=10,当再插入一个,即第十一个数
2015-07-31 22:00:49 492
转载 wiresharek 分析TCP 报文头
本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析。一、概述TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护任何连接状态信息。连接建立整个过程如下(即三次握手协议):首先,客户机发送一个特殊的T
2015-07-31 21:36:40 6576
原创 TCP 传输 滑动窗口
我们可以大概看一下上图的模型:首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。A发送过来的数据逐渐将缓冲区填满。这时候缓冲区中的一个报文被进程读取,缓冲区有
2015-07-31 21:03:03 477
转载 TCP/IP学习(四)TCP缓冲区大小及限制
这个问题在前面有的部分已经涉及,这里在重新总结下。主要参考UNIX网络编程。(1)数据报大小IPv4的数据报最大大小是65535字节,包括IPv4首部。因为首部中说明大小的字段为16位。IPv6的数据报最大大小是65575字节,包括40字节的IPv6首部。同样是展16位,但是IPv6首部大小不算在里面,所以总大小比IPv4大一个首部(40字节)。(2)MTU许多网络有一
2015-07-31 15:26:50 1593
转载 TCP send 函数
int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;
2015-07-31 15:04:03 591
转载 nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
分类: 流媒体2015-04-17 09:03 959人阅读 评论(0) 收藏 举报流媒体服务器ffmpegnginxrtmp视频流Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.这个流媒体服务器可以支
2015-07-30 10:49:57 728
转载 快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速
2015-07-27 23:34:35 336
原创 wireshark 过滤规则
1.(ip.src == 192.168.3.41 and ip.dst == 192.168.3.39 and tcp.srcport == 80 and tcp contains "motion")or (ip.src == 192.168.3.39 and ip.dst ==192.168.3.41 and tcp.dstport==80 and http)2.(ip.src
2015-07-27 11:31:39 477
原创 linux 系统定时器的一些用法
{if( true == bSYNTime ){unsigned int currentTime;unsigned int firstAlarm;struct itimerval iTimer;struct sigaction SigAction;//设置信号处理函数SigAction.sa_handler = ReviseSystemTime;
2015-07-21 16:29:01 417
转载 为什么要使用RTP
2014-02-06 20:49 628人阅读 评论(0) 收藏 举报一提到流媒体传输、一谈到什么视频监控、视频会议、语音电话(VOIP),都离不开RTP协议的应用,但当大家都根据经验或者别人的应用而选择RTP协议的时候,你可曾想过,为什么我们要使用RTP来进行流媒体的传输呢?为什么我们一定要用RTP?难道TCP、UDP或者其他的网络协议不能达到我们的要求么?本文就是根据我在R
2015-07-20 16:23:31 421
转载 linux rtp 编程JRTLIB
Linux下的实时流媒体编程(RTP,RTCP,RTSP)2 (2010-04-30 20:07:18)转载▼标签: 杂谈分类: RTPRTP 是目前解决流媒体实时传输问题的最好办法,如果需要在Linux平台上进行实时流媒体编程,可以考虑使用一些开放源代码的RTP库,如LIBRTP、 JRTPLIB等。JRTPLIB是
2015-07-20 16:15:30 1160
转载 nginx + rtmp 搭建流媒体服务器
Nginx RTMP 功能研究分类: 视频 流媒体 nginx2012-12-26 18:09 31125人阅读 评论(2) 收藏 举报目录(?)[+] Nginx-RTMP功能调研1. RTMP协议介绍...22.RTMP server.32.1当前的流媒体server.32.2Wowza功能...33.Nginx-base
2015-07-19 18:08:28 14553
转载 nginx使用介绍 说明
1.什么是NginxNginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺
2015-07-19 17:59:35 493
转载 进程间 对共享资源的访问 互斥 机制
http://blog.csdn.net/lanseshenhua/article/details/5557017 Linux下的多进程间共享资源的互斥访问分类: Linux编程2010-05-04 19:21 4291人阅读 评论(1) 收藏 举报linuxnull测试把源代码运行一遍就知道了[cpp] view pla
2015-07-19 13:32:56 1063
转载 长连接 短连接 区别
TCP连接简介当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图: 一、长连接与短连
2015-07-19 13:21:14 2868
转载 用EasyDarwin开发分布式流媒体服务器
http://www.easydarwin.org/article/EasyDarwin/22.html我介绍的是如何在DSS的基础上进行改造,分别开发成为分布式流媒体系统中的设备接入服务(设备主动注册上线)与流媒体分发服务。大家肯定会奇怪,DSS怎么改造成设备接入服务呢,其实,以DSS的架构,完全可以改造成大部分类型的服务器系统,而且流媒体服务只是DSS的几个功能模块,其
2015-07-14 12:52:35 1310
转载 gdb 常用命令
GDB常用命令调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序(
2015-07-10 17:45:19 448
转载 linux 相对时间
今天,再次碰到一个由于系统时间调整导致的bug。不得不再次查找完美的问题解决方案。虽然,按道理来说,系统时间进行重置之后,一些应用程序的行为出现异常是合乎情理,并且是可以被理解并接受的,最重要的是这样的问题都可以通过重新启动操作系统来解决(微软大哥解决问题之道),但是,对于软件开发人员来说,应该尽量避免非必要的重启。对自己严格要求点儿似乎没什么过错!?对绝对时间的依赖似乎不怎么容易
2015-07-10 11:45:00 2342
转载 RTSP - RTP over TCP
Normally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it is unlikely to use UDP for streaming over the Internet.
2015-07-08 23:08:17 550
转载 TCP如何保证可靠性
在TCP的连接中,数据流必须以正确的顺序送达对方。TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输
2015-07-08 22:58:08 1009
转载 epoll+线程池
epoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级。单线程epoll,触发量可达到15000,但是加上业务后,因为大多数业务都与数据库打交道,所以就会存在阻塞的情况,这个时候就必须用多线程来提速。 业务在线程池内,这里要加锁才行。测试结果2300个/s 测试工具:stressmark因为加了适用与ab的代码,所以
2015-07-08 00:09:58 496
转载 epoll使用精髓
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2015-07-07 23:59:23 395
转载 select,poll,epoll之间的区别
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用
2015-07-06 16:31:23 488
转载 rtmp 协议分析及交互过程
RTMP流媒体播放过程分类: RTMP2013-09-15 11:19 13039人阅读 评论(9) 收藏 举报播放RTMP协议本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网
2015-07-05 18:22:21 9978
转载 H264码流结构
H264码流结构分析分类: 流媒体 视频编码2014-07-20 11:57 2272人阅读 评论(0) 收藏 举报1、码流总体结构:h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL)。H.264 的编码视频序列包括一系列的NAL 单元,每个NAL 单元包含一个RBSP。一个原始的H.264 NALU 单元常由 [StartCode] [NALU Hea
2015-07-05 17:49:50 677
转载 H264中的SPS、PPS提取与作用
H264中的SPS、PPS提取与作用分类: 多媒体技术2012-06-20 16:37 22762人阅读 评论(5) 收藏 举报h.264headermatrix服务器parameters文档目录(?)[+]牛逼的视频会议网站:http://wmnmtm.blog.163.com/blog/#m=0++++++++++++++++
2015-07-05 17:48:13 717
转载 rtp rtcp 协议相关分析
1流媒体协议 当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输。下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。流式传输是指传输之前首先对多媒体进行预处理(降低质量和高效压缩),然后使用缓存系统来保证数据连续正确地进行传输。使用流式传输可以边下载边观看流媒体节目,可以实现网上直播、视频会议等。目前,支持流媒体
2015-07-05 17:28:18 686
转载 RTSP 协议 简单交互过程
Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一 种可扩展的框架,使能够提供可控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,rt
2015-07-05 16:58:37 13009
转载 gdb 调试相关
gdb调试命令 本文主要参考自:http://www.cnblogs.com/zzx1045917067/archive/2012/12/26/2834310.html,进行了一点补充和编排;Core dump部分参考了:http://blog.ddup.us/?p=176。 gdb是一个在UNIX环境下的命令行调试工具。 如果需要使用gdb调试程序,请在gcc时
2015-07-02 17:12:45 353
转载 gdb 死锁线程
1.调试文件 lock.c[cpp] view plaincopy#include #include #include void *work_thread(void *arg) { pthread_mutex_t mutex; pthread_mutex_init(&mutex
2015-07-02 09:21:20 603
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人