- 博客(1980)
- 资源 (7)
- 收藏
- 关注
原创 网络编程五种IO模型之重叠IO模型-事件驱动
#ifndef Globle_H#define Globle_H#include #include #include #include using namespace std;#define BUFFER_SIZE 64#define PORT 4567char Data[37] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
2017-10-16 00:07:53 546
原创 网络编程五种IO模型之重叠IO模型-完成例程
/* client.cpp */#include #include #include #include #include "Globle.h"#pragma comment(lib, "ws2_32.lib")#define MAX_THREAD 5HANDLE ThreadPool[MAX_THREAD] = {NULL};volatile BOOL bE
2017-10-16 00:06:19 658
原创 网络编程五种IO模型之IOCP模型
/* client.cpp */#include #include #include #include #include "Globle.h"#pragma comment(lib, "ws2_32.lib")#define MAX_THREAD 5HANDLE ThreadPool[MAX_THREAD] = {NULL};volatile BOOL bE
2017-10-16 00:03:14 929
原创 Linux下多线程同步方式之互斥量,信号量,条件变量
// linux_thread_syn.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//互斥量#include #include #include #include #include "iostream" using namespace std; pthread_mutex_t mutex = PTHREAD_MUT
2017-10-16 00:01:50 336
原创 win32下多线程同步方式之临界区,互斥量,事件对象,信号量
// win32_thread_syn.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "iostream"#include "list"#include "windows.h"#include "process.h"using namespace std;/*线程同步1.临界区2.信号量3.事件对象4.互斥量*/
2017-10-15 23:59:58 1069
原创 boost之asio异步io使用实例
// boost_asio_client.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #include #include #include #include #include #include #include #include #p
2017-10-08 15:18:25 1401
原创 boost之asio同步io使用实例
// boost_sync_client.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #include #include #include #include #include #include #include #include #
2017-10-08 15:17:05 494
原创 ACE之Proactor模式使用实例
// ACE_Proactor_Client.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "ace/Message_Queue.h"#include "ace/Asynch_IO.h"#include "ace/OS.h"#include "ace/Proactor.h"#include "ace/Asynch_Connec
2017-10-08 14:50:55 1256
原创 ACE之Reactor模式使用实例
// ACE_Reactor_Client.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "ace/Reactor.h" #include "ace/SOCK_Connector.h" #include "ace/OS.h"#include "ace/Log_Msg.h"#include #include u
2017-10-08 14:48:00 912
原创 C++使用ICE实现两台主机通信实例
ice使用过程跟google protocol buffer、gsoap类似,都是先写一个类似配置文件的东西,然后使用提供的工具生成相应语言的代码。ice先写一个后缀名为.ice的文件,然后使用slice2cpp.exe生产对应c++代码,如下module MCal{ interface Cal { int add(int num1,int num2);
2017-10-08 11:35:16 2560
原创 设计模式-行为-访问者
#pragma once#ifndef VISITOR_H #define VISITOR_H class Visitor; class Element { public: virtual ~Element(){} virtual void Accept(Visitor &rVisitor) = 0; protected: Element(){} }; cl
2017-10-07 20:36:14 304
原创 设计模式-行为-模板方法
#pragma once// 抽象基类,定义 法的轮廓 class AbstractClass { public: AbstractClass(){} virtual ~AbstractClass(){} // 这个函数中定义了 法的轮廓 void TemplateMethod(); protected: // 纯虚函数,由派生类实现之 virtual vo
2017-10-07 20:33:29 230
原创 设计模式-行为-策略
#pragma once#ifndef STRATEGY_H #define STRATEGY_H class Strategy; class Context { public: Context(Strategy *pStrategy); ~Context(); void ContextInterface(); private: Strategy* m_pS
2017-10-07 20:32:21 227
原创 设计模式-行为-状态
#pragma once#ifndef STATE_H #define STATE_H class State; class Context { public: Context(State* pState); ~Context(); void Request(); void ChangeState(State *pState); private: Sta
2017-10-07 20:30:45 327
原创 设计模式-行为-观察者
#pragma once#ifndef OBSERVER_H #define OBSERVER_H #include typedef int STATE; class Observer; //发布者// Subject 抽象基类,只需要知道Observer 基类的声明就可以了 class Subject { public: Subject() : m_nSubj
2017-10-07 20:27:47 327
原创 设计模式-行为-备忘录
#pragma once#ifndef MEMENTO_H #define MEMENTO_H #include typedef std::string State; class Memento; class Originator { public: Originator(const State& rState); Originator(); ~Origi
2017-10-07 20:25:14 269
原创 设计模式-行为-中介者
#pragma once//#ifndef _COLLEAGE_H_//#define _COLLEAGE_H_#include using namespace std;class Mediator;class Colleage{public: virtual ~Colleage(); virtual void Aciton() = 0; virtual void Set
2017-10-07 20:23:26 287
原创 设计模式-行为-迭代器
#pragma once#ifndef ITERATOR_H #define ITERATOR_H #include #include using namespace std;class Iterater; // 容器的抽象基类template class Aggregate { public: virtual ~Aggregate(){} virtual
2017-10-07 20:21:40 251
原创 设计模式-行为-解释器
#pragma once#include using namespace std;class Context //表述内容{public: Context(); ~Context();protected:private:};class AbstractExpression //抽象表达式{public: virtual ~AbstractExpression();
2017-10-07 20:20:24 306
原创 设计模式-行为-命令
#pragma once#ifndef COMMAND_H #define COMMAND_H class Command { public: virtual ~Command() {} virtual void Execute() = 0; }; class Receiver { public: void Action(); }; class Invo
2017-10-07 20:19:06 263
原创 设计模式-行为-职责链
#pragma once#ifndef CHAINOFRESPONSIBILITY_H #define CHAINOFRESPONSIBILITY_H #include // 抽象基类,定义一个处理请求的接口 class Handler { public: Handler(Handler *pSuccessor = NULL); virtual ~Handler()
2017-10-07 20:17:45 289
原创 设计模式-结构型-代理
#pragma once#ifndef PROXY_H #define PROXY_H // 定义了Proxy 和RealSubject 的公有接口, // 这样就可以在任何需要使用到RealSubject 的地方都使用Proxy. class Subject { public: Subject(){} virtual ~Subject(){} virtual v
2017-10-07 20:15:05 243
原创 设计模式-结构型-享元
#pragma once#ifndef FLYWEIGHT_H #define FLYWEIGHT_H #include #include typedef std::string STATE; class Flyweight { public: virtual ~Flyweight(){} STATE GetIntrinsicState(); virtua
2017-10-07 15:54:05 251
原创 设计模式-结构型-外观
#ifndef _FACADE_H_ #define _FACADE_H_#include "stdafx.h"class Subsystem1 {
2017-10-07 15:52:45 281
原创 设计模式-结构型-装饰
#pragma once#ifndef DECORATOR_H #define DECORATOR_H // 抽象基类,定义一个对象接口,可以为这个接口动态的添加职责. class Component { public: Component(){} virtual ~Component(){} // 纯虚函数,由派生类实现 virtual void Operat
2017-10-07 15:51:35 233
原创 设计模式-结构型-组成
#pragma once#include // 组合中的抽象基类 class Component { public: Component(){} virtual ~Component(){} // 纯虚函数,只提供接口,没有默认的实现 virtual void Operation() = 0; // 虚函数,提供接口,有默认的实现就是什么都不做 virtu
2017-10-07 15:50:14 273
原创 设计模式-结构型-桥接
#pragma once#ifndef BRIDEG_H #define BRIDEG_H class Implementor; // 维护一个Implementor 类的指针 class Abstraction { public: Abstraction(Implementor* pImplementor); virtual ~Abstraction(); vo
2017-10-07 15:47:39 280
原创 设计模式-结构型-适配器
#pragma once#ifndef ADAPTER_H #define ADAPTER_H // 需要被Adapt 的类 class Target { public: Target(){} virtual ~Target() {} virtual void Request() = 0; }; // 与被Adapt 对象提供不兼容接口的类 class Ada
2017-10-07 15:46:08 274
原创 设计模式-创建型-单件
#pragma once#ifndef SINGLETON_H #define SINGLETON_H #include using namespace std;class Singleton { private: Singleton(){}; public: // 静态成员函数,提供全局访问的接口 static Singleton* GetInstancePtr()
2017-10-07 15:43:09 253
原创 设计模式-创建型-原型
#pragma once#include #include #include using namespace std;class cloneable{public: virtual cloneable* clone() = 0;};class work_experience:public cloneable{public: cloneable* clone() {
2017-10-07 15:41:40 293
原创 设计模式-创建型-工厂方法
#pragma once#ifndef FACTORY_H #define FACTORY_H class Product { public: Product(){} virtual ~Product(){} }; class ConcreateProduct : public Product { public: ConcreateProduct(); v
2017-10-07 15:38:45 253
原创 设计模式-创建型-生成器
#pragma once#ifndef BUILDER_H #define BUILDER_H #include using namespace std;// 虚拟基类,是所有Builder的基类,提供不同部分的构建接口函数 class Builder { public: Builder(){}; virtual ~Builder(){} // 纯虚函数,提供构
2017-10-07 15:37:23 298
原创 设计模式-创建型-抽象工厂
#pragma once#ifndef ABSTRACTFACTORY_H #define ABSTRACTFACTORY_H // 抽象基类AbstractProductA,代表产品A 的抽象 class AbstractProductA { public: AbstractProductA() {} virtual ~AbstractProductA(){}; };
2017-10-07 15:33:24 225
原创 windows下live555+rtsp+ffmpeg媒体源,nginx+rtmp转发服务器,vlc播放rtmp媒体流
1.下载live555+ffmpeg并配置文件作为媒体源将视频文件me-like-yuh.ts和ffmpeg推流脚本ffmpeg-rtsp2rtmp.bat放在mediaserver目录下ffmpeg推流脚本如下:loopffmpeg -i "rtsp://192.168.0.106/me-like-yuh.ts" -f flv -r 25 -s 960x546 -an "r
2017-06-11 16:16:21 2656
原创 SSD+HDD双硬盘+MSI主板win8.1+ubuntu17.04双系统安装总结
刚配置的台式机,tigo SSD固态硬盘和ST1000DM010,主板为MSI微星x99,预装系统为win8.1,准备装一个ubuntu17.04双系统,安装过程中遇到的问题总结1.msi微星x99主板中启动模式只有UEFI和UEFI+Legacy两种模式选择,开机按Delete进入BIOS,F11选择启动系统关于设置启动顺序,哪个系统放在前面,默认启动第一个位置的系统,比如我的是
2017-06-10 19:56:32 3928
原创 linux下遍历目录和文件,删除过期天数目录或文件shell脚本
#!/bin/bashfunction delete_file(){ INTERVAL=$(($1*3600*24)) pathdir=$2/ #echo $INTERVAL #echo $pathdir now_timestamp=$(date -d "$(date +"%Y-%m-%d %T")" +%s) #echo $now_timestamp fil
2017-06-01 15:32:39 3632
原创 linux下使用gdb调试崩溃和死锁实例
gdb是linux下一款功能强大的调试工具,windows下对应的有windbg,下面举例说明常见程序错误解决方法1.gdb启动要想使用gdb调试,编译时指定-g选项加入调试信息,gdb可以启动执行文件,attach正在运行程序,调试程序崩溃产生core文件启动gdb后输入run运行,continue继续,quiet退出,下面是调试一段崩溃和死锁的源码#include #inc
2017-05-30 20:51:30 11748
原创 解决ubuntu apt-get install出现E:Clould not get lock /var/lib/dpkg/lock
在vmware下ubuntu安装svn出现如下错误出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用,可能是上次运行安装或更新时没有正常完成解决办法是使用rm命令删除安装缓存和lib下dpkg目录
2017-05-30 00:43:33 1045
原创 解决ubuntu下vi上下左右方向键出现字母,backspace键不能删除字符
在vmware虚拟机中安装ubuntu下使用vi编辑文件,发现上下左右方向键不能在文本中移动,出现ABCD字符,backspace也不能删除字符,解决方法有几种方法1:将vimrc档案拷贝到home目录cp /etc/vim/vimrc ~/.vimrc 方法2:卸载vim-tiny,安装vim-full ubuntu默认安装装的是vim tiny版本,而需要的是vim f
2017-05-30 00:25:18 14416
原创 解决安装完ubuntu登陆无root账户问题
安装完成ubuntu后登陆框没有root用户,因为默认刚安装的ubuntu是禁用root用户的,通过以下方式启用root用户1.打开配置文件输入sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf后提示输入密码,输入安装时设置的密码2.添加启用root在打开的配置文件下面加一行 greeter-show-manual
2017-05-28 15:56:28 2010
android sdk 模拟器 懒人版-part3
2014-12-31
vc编程pppoe-discovery
2012-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人