- 博客(20)
- 资源 (11)
- 收藏
- 关注
转载 boost asio 实现一个TCP服务端线程池
tcp的服务器端绑定并监听端口,如果客户端比较少,可以对每个客户端创建一个线程进行通讯处理,但当客户端的数量比较庞大的时候这种思路就变得不可行,一方面线程切换的开销太大,另一方面,多数线程并不出于“工作”状态,长期出于等待事件的状态。这时,可以使用线程池的架构加快处理速度。废话少说,直接上代码#include <stdio.h> #include <cstdlib> #in...
2018-07-02 11:41:16
1012
转载 STL容器与拷贝构造函数
所有容器提供的都是“value语意”而非“reference语意”。容器内进行元素的安插操作时,内部实施的是拷贝操作,置于容器内。因此STL容器的每一个元素都必须能够拷贝。---<<C++标准程序库>> 侯捷、孟岩译 p144页原文 以vector为例,往Vector中(实际上所有STL容器都是这样)放元素,Vector会调用元素类的拷贝构造函数生成的副本,当Vector走...
2018-06-26 17:06:03
571
转载 boost::condition_variable 设计c++ 生产者消费者队列
boost::condition_variable 设计c++ 生产者消费者队列2014年08月11日 15:13:04阅读数:4595boost::condition_variable 用法:当线程间的共享数据发生变化的时候,可以通过condition_variable来通知其他的线程。消费者wait 直到生产者通知其状态发生改变,Condition_variable是使用方法如下:·当持有锁之...
2018-06-02 14:35:18
485
转载 MySQL中join多个表的情况
MySQL中join多个表的情况2015年10月14日 09:12:27阅读数:7494inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 INNER JOIN 语法: INNER JOIN 连接两个数据表的用法: SE...
2018-05-26 15:12:16
20261
1
转载 GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明
/********************************************************************* * Author : Samson * Date : 07/12/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * ...
2018-03-12 13:54:26
336
转载 最简单的基于FFmpeg的内存读写的例子:内存转码器
最简单的基于FFmpeg的内存读写的例子:内存转码器=====================================================最简单的基于FFmpeg的内存读写的例子系列文章列表:最简单的基于FFmpeg的内存读写的例子:内存播放器最简单的基于FFmpeg的内存读写的例子:内存转码器========================
2018-02-02 10:17:54
254
转载 CentOS 6.9安装配置RabbitMQ
MQ:Message Queue,消息队列,是一种应用程序对另一种应用程序的通信方法。应用程序通过读写出入队列的消息来通信1、 演示环境:IP:192.168.1.145操作系统:CentOS 6.9 x86_64Erlang版本:otp_src_20.1.tar.gz,下载地址http://erlang.org/download/RabbitMQ版本:ra
2018-01-10 15:40:37
1547
转载 rabbitmq编译安装
1980一 Erlang安装1.RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境.从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,Linux和MacOSX下载的版本是 http://www.erlang.org/download.html2.然后解压下载的gz包tar
2018-01-10 11:00:30
565
转载 Live555学习之(七)---------- Live555实现h264视频的点播
上一篇介绍了Live555如何实现录像功能,我录的是H264编码的视频文件。在《Live555的基本介绍》这一篇中,我介绍说把mp3文件放到live/mediaServer目录下,然后使用Live555流化,就可以通过vlc去点播该文件。那么我们录好的h264文件能否被Live555流化然后使用VLC点播呢?经试验,发现是不行的。 然后我就对比VLC去请求Live555流化mp3文件和h
2017-09-15 17:48:30
1210
转载 Live555学习之(六)---------- 在Live555中实现录像
Live555还提供了录像的示例程序,在testProgs目录下的playCommon.cpp中,Live555录像的基本原理就是创建一个RTSPClient去请求指定rtsp地址的视频,然后保存到文件里。 playCommon.cpp打开一看就发现首先是各种全局函数的声明,然后是各种全局变量的声明,然后是main函数和各个函数的实现。main函数中首先还是创建TaskScheduler
2017-09-15 17:47:42
1024
转载 Live555学习之(五)------live555ProxyServer.cpp的学习
live555ProxyServer.cpp在live/proxyServer目录下,这个程序展示了如何利用live555来做一个代理服务器转发rtsp视频(例如,IPCamera的视频)。 首先来看一下main函数 1 int main(int argc, char** argv) 2 { 3 // Increase the maximum size of vid
2017-09-15 17:46:53
1035
转载 Live555学习之(四)------建立RTSP连接的过程(RTSP客户端)
Live555学习之(四)------建立RTSP连接的过程(RTSP客户端) Live555不仅实现了RTSP服务器端,还实现了RTSP客户端,我们通过testRTSPClient.cpp这个程序来看一下,Live555的RTSP客户端与服务器端建立RTSP连接的过程。 首先来看一下main函数: 1 char eventLoopWatchVariable
2017-09-15 17:45:18
1584
转载 Live555学习之(二)------- testOnDemandRTSPServer
Live555学习之(二)------- testOnDemandRTSPServer 首先,看看这个程序的说明: // A test program that demonstrates how to stream - via unicast RTP // - various kinds of file on demand, using a built-in RT
2017-09-15 17:44:01
733
转载 Live555学习之(一)-------Live555的基本介绍
Live555学习之(一)-------Live555的基本介绍 前一阵子,因为项目需要,研究了一下Live555开源框架,研究的不是很深入,基本上把Live555当做API用了一下,但是毕竟也是本人看的第一个开源框架,在此记录总结一下。 Live555是一个实现了RTSP协议的开源流媒体框架,Live555包含RTSP服务器端的实现以及RTSP客户端的实现。Live5
2017-09-15 17:42:50
624
转载 Live555学习之(三)------建立RTSP连接的过程(RTSP服务器端)
Live555学习之(三)------建立RTSP连接的过程(RTSP服务器端) 上一篇我们简单分析了testOnDemandRTSPServer.cpp的main函数,主要步骤是创建RTSPServer,创建ServerMediaSession对象,然后等待RTSP客户端的连接。接下来我们分析一下Live555中建立RTSP连接的详细过程,首先我们需要简单了解一下RTSP协
2017-09-15 17:41:07
1800
原创 MySQL C语言接口-预处理语句
对于多次执行的语句,预处理执行比直接执行快,主要原因在于,仅对查询执行一次解析操作。在直接执行的情况下,每次执行语句时,均将进行查询。此外,由于每次执行预处理语句时仅需发送参数的数据,从而减少了网络通信量 A:select * from tablenameB:select * from tablename服务器一般处理方式: A--->S--->A B--->
2017-09-08 10:26:23
2519
原创 仿函数
STL中的函数配接器,是指能够将仿函数和另一个仿函数或某个值或某一个一般函数结合起来形成一个新的仿函数。在STL中函数配接器一共有四个,分别是:bind1nd(op ,value) 相当于构成op(value,param),即把value结合成op的第一个参数bind2nd(op ,value)相当于构成op(param,value),即把value结合成op的第二个参数
2017-09-07 17:32:32
214
原创 神奇的hello world
#include "stdio.h" class CTest{public: void print(const char* const pszMsg) { printf("%s\n",pszMsg); }}; int main(void){ CTest* pTest = NULL; pTest->pr
2017-09-07 15:40:28
193
转载 虚函数表
原文地址 http://yoyo.is-programmer.com/posts/10671.html检测方法(VS2005):项目命令行加上参数/d1reportAllClassLayout,在编译时CTRL+F5搜索输出,查看类的对象布局。vftable - 虚函数表; vbtable - 虚继承的父类表; member - 类的成员变量(这个只是写作方便说明 = =)。
2017-09-07 15:21:06
299
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人