自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的专栏

专注于Linux /Window平台C/C++游戏服务器后台程序开发

  • 博客(54)
  • 资源 (3)
  • 收藏
  • 关注

转载 C++中int型与string型互相转换

本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,我只挑最简单易懂的,管他效率不效率的。int转stringint n = 0;std::stringstream ss;std::string str;ssss>>str;string转intstd::string

2014-04-28 18:07:07 2847

转载 vc工程下的 文件是什么

vc工程下的文件dsw为工作区文件,dsp为项目文件,cpp为源程序文件。.sln 存的是整个解决方案的文件信息,包含那些文件和文件的版本信息sln是一个或多个项目的配置文件,为最高级别的配置文件。在创建工程时生成。vs2005和vs2003使用sln,以前的版本使用dsw。.ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以

2014-04-25 15:37:04 1075

转载 提示microsoft incremental linker已停止工作解决方法

提示microsoft incremental linker已停止工作解决方法这个是因为你的设置有问题。解决方法如下:解决方案一:项目->属性->链接器->常规 下面的“启用增量链接”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。不过这又引入了另外一个警 告:FormatCom.obj : warning LNK40

2014-04-25 15:36:09 1270

转载 ACE Service Configurator的入门

前几天读《C++NPv2》的Task框架,里面有用到ACE Service Config,正好目前手上维护的项目也有用到这个,反正闲着也是闲着,就看一下当作消遣。这个ServiceConfig框架其实就是用于网络服务配置的,可以静态的配置,也可以强大的动态配置,不用改主程序,配置好配置文件,重新启动即可加载。据说更强悍的是在运行中,可以发信号控制动态加载,连程序都不用停,真是悍中之悍。

2014-04-25 08:31:14 847

转载 一个关于ACE Service Configurator的小例子

整了好久,终于在Linux看到了ACE Service Configurator框架呈现出来的美好景象了,这个框架确实让人瞠目结舌啊。这个例子做到了在不关闭服务的同时,替换服务所使用的接口函数,服务提供程序在定时器中不断地读取svc.conf配置文件的内容,然后reconfig服务,在定时器中这样做并不是一个聪明的办法,但是它生动地展示了Service Configurator可以这样重配置。服务

2014-04-25 08:28:29 907

转载 ACEXML解析XML文件

最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息。最终经过主程的评测,决定使用ACEXML库来读取解析XML文件。好吧,至于为什么选择ACEXML库,我就不说了。既然选择了它,就要尽快上手并使用它。可是主程说他没有文档,如何使用自己看着办吧那么我是如何在短时间内掌握ACEXML的使用方法呢,下面来分享一下,我的学习历程。第一步肯定是谷歌搜索对于我来说,第

2014-04-24 14:07:48 973

转载 ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的

最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息。最终经过主程的评测,决定使用ACEXML库来读取解析XML文件。好吧,至于为什么选择ACEXML库,我就不说了。既然选择了它,就要尽快上手并使用它。可是主程说他没有文档,如何使用自己看着办吧那么我是如何在短时间内掌握ACEXML的使用方法呢,下面来分享一下,我的学习历程。第一步肯定是谷歌搜索对于我来说,第

2014-04-24 14:07:03 1012

转载 Qt中QTableWidget用法总结

QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并

2014-04-23 14:16:23 872

原创 Linux 安装wps 及出现问题解决

首先下载 wget http://bcs.duapp.com/billyfu/linux/wps_fonts.tar.gz然后解压安装

2014-04-19 20:20:15 5314

转载 C++中explicit关键字的作用

转载于http://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.htmlexplicit用来防止由构造函数定义的隐式转换。要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如:class things{ public:

2014-04-18 14:39:46 816

原创 recordMyDesktop的安装与使用

今天给大家推荐一款能让桌面录像更简单的屏幕录像的工具:  RecordMyDesktop安装 RecordMyDesktopRecordMyDesktop 的核心是一系列命令工具,不过 Gnome KDE 上面还是有非常有用的图形界面工具,这里我们使用 Gnome 版本。Ubuntu 用户可使用如下命令安装:sudo apt-get install gtk-recordmydesk

2014-04-17 23:33:15 8504

转载 Window环境下Python和Django的安装

1.下载python,本文使用python-2.7.2.msi 2.下载django,本文使用Django-1.3.1.tar.gz 3.安装python-2.7.2.msi 双击,配置安装目录。本文安装到F:\4.我的电脑->属性->高级->环境变量->系统变量中找到 Path ,添加 F:\Python275.开始->运行 输入 cmd  ,光标下输入pytho

2014-04-17 11:52:23 735

原创 ACE ace_echo_server_ace_acceptor 编程

/*#include #include #include #include #include class Connection: public ACE_Svc_Handler {public: virtual int handle_input(ACE_HANDLE h) { ssize_t len = peer().recv(buf, sizeof buf); if

2014-04-16 23:14:36 808

原创 ACE_Guard守护互斥体锁

ACE_Thread_Mutex nm, iom;int n = 0;static ACE_THR_FUNC_RETURN func(void* arg) { while (n < 5) { { ACE_Guard guard(nm); ++n; } ACE_OS::sleep(1); ACE_Guard guard2(iom); int k = (int

2014-04-16 23:13:36 2406

原创 ACE_Message_Queue

1.与System V的消息队列模型不同 ACE_Message_Queue的模型是仿照System V streams提供的排队设施设计的,但是与System V排队设施不同,使用ACE的排队设施,可以在单个进程中进行高效的线程间通信,但是没有提供用于进程间通信的排队设施。  2.基于traits策略的类的设计 为了实现线程安全,经常要实现多种版本的库,多线程库、单线

2014-04-16 23:13:06 2212

原创 ACE_Semaphore信号量生产着消费者队列

这个信号量机制在win32和linux上都支持,没有什么特别的感觉。直接上Demo如下,这个Demo也是经典的生产者消费者的实现: [cpp] view plaincopy// thread_semaphore.cpp #include "ace/Task.h" #include "ace/Semaphore.h" class Consumer:public A

2014-04-16 23:12:05 1948

原创 ACE_Timer_Queue

下面为一个主动定时器,ACE程序员指南上的例子,存储定时器的结构为heap,用法很简单,回调机制使用的为ACE_Event_Handler,关键接口就是timer_queue的schedule,第一个为回调对象的引用(继承了ACE_Event_Handler类,会回到其中的handle_timeout方法),其中schedule方法的第二和第三个参数也会传给第一个回调对象的handle_tim

2014-04-16 23:11:17 1118

原创 ACE基本APISOCKET编程TCPACE_INET_Addr类ACE_SOCK_Acceptor类ACE_SOCK_Connector类ACE_SOCK_Stream

Tcp通信过程一般为如下步骤:1. 服务器绑定端口,等待客户端连接。2. 客户端通过服务器的ip和服务器绑定的端口连接服务器。3. 服务器和客户端通过网络建立一条数据通路,通过这条数据通路进行数据交互。 常用API:1. ACE—INET_Addr 类。ACE"地址"类ACE_Addr的子类,表示TCP/IP和UDP/IP的地址。它通常包含机器的ip和端口信息,通过它可以定位到所通信的

2014-04-16 23:10:06 1695

原创 ACE递归锁读写锁

1.不同平台使用有差异性/** * @class ACE_Thread_Mutex * * @brief ACE_Thread_Mutex wrapper (only valid for threads in the same * process). * * This implementation is optimized for locking threads that are

2014-04-16 23:09:48 1851

原创 ACE生产消费者队列就是消息队列

ACE—Message一 Queue在Windows和Linux的config文件中都没有定义"ACE_HAS_TIMED_MESSAGE_BLOCKS"这个宏,所以 msg_deadline_time 和 msg_execution_time都不起任何作用.ACE_Message_Queue_Factory这个工•提供三个静态函数分别用来创建静态消息队列 和两种类型的动态消息队列。静态消息

2014-04-16 23:02:56 2588

原创 ACE条件变量

Cond.signal()向当个等待条件变量发通知Broadcast();向所有的发消息

2014-04-16 23:01:24 849

原创 ACE中UDP通信ACE_INET_Addr类ACE_SOCK_Acceptor类ACE_SOCK_Connector类ACE_SOCK_Stream

ACE中UDP通信udp是一种无连接的协议,提供无连接不可靠的服务。在ace中,通过ACE_SOCK_Dg「am类提供udp通信服务,ACE_SOCK_Dg「am和 ACE_SOCK_Stream的API非常类似,一样提供了 send, recv及close等常用操作,这里就不再累述了。udp通信时无需像tcp那样建立连接和关闭连接,tcp编程时需要通过accept和 connect来建立

2014-04-16 22:58:27 1215

原创 基于ACE reactor_echo_server实现

/* * reactor_echo_server.cpp * * Created on: Jan 3, 2014 10:13:07 AM * Author: Jeffrey Cheng * Web: http://www.xuanyuan-soft.cn * Mail: kwarph@gmail.com */#include #incl

2014-04-16 22:56:33 790

原创 基于ACE Reacotr FTP server 简单实现

/* * reactor_echo_server.cpp * * Created on: Jan 3, 2014 10:13:07 AM * Author: Jeffrey Cheng * Web: http://www.xuanyuan-soft.cn * Mail: kwarph@gmail.com */#include #incl

2014-04-16 22:55:28 1354

原创 ACE定时器代码实现

#include #include //这个代码要看看最原始的版本class MyTimerHandler : public ACE_Event_Handler {private: int inteval; //执行时间间隔 int delay; //延迟执行时间 int timerid;public: MyTimerHandler

2014-04-16 22:54:31 1563

原创 基于ACE_Message_Queue的生产者消费者模式

1.生产者尽可能生产;2.消费者按照自身需求执行消费行为;code:class CMediaSendBlock : public ACE_Message_Block{public: CMediaSendBlock( const char* pData, const unsigned long ulDataLen) : ACE_Message_Block((size_t)

2014-04-16 22:53:35 1072

原创 ACE 内存管理

ACE的内存管理类常用的就是两个,一个是ACE_Cached_Allocator,一个是ACE_Malloc,这两个类都可以和锁相结合完成多线程中内存申请同步问题,下面介绍这两个类。2.1 缓存内存分配类ACE_Cached_Allocator这个类在构造函数中通过new操作预先分配一定的内存,并按照第一个模板参数的大小对内存进行分块把每一块的内存偏移指针作为链表的节点存放在成员变量ACE_L

2014-04-16 22:52:55 1800

原创 ACE 日志输出

ACE提供日志及跟踪信息的调试、打印管理,类ACE_Log_Msg提供日志的显示和打印,用户也可以通过继承ACE_Log_Msg_Callback类实现日志的自己管理。在我们代码里面可以使用两个宏:ACE_DEBUG和ACE_ERROR记录日志,下面例子简单显示两个日志:int main(int argc, char * argv[]){ ACE_DEBUG((LM_DEBUG, “ACE_

2014-04-16 22:51:55 2184

原创 ACE多线程创建

5.1 简单的线程类ACE_ThreadACE_Thread实现了跨平台的线程封装,启动线程函数为静态函数ACE_Thread::spawn_n,通过join函数保证线程释放资源,按照OOP封装的原则并不建议用户过多的使用ACE_Thread,而应该采用后面介绍的ACE_Task,下面为简单的演示代码:#include "ace/os.h"#include "ace/log_msg.h"#

2014-04-16 22:51:08 1230

原创 二,openDDS的通信流程

2014-04-16 21:51:14 5764 1

原创 一,openDDS及相关产品介绍

opeDDS是分布式应用程序的实时通信网络中间件,  主要用于实时数据分发服务。采用以数据为中心的发布/订阅的工作模式,发布者和订阅者通过主题相关联,双方不必知道对方在何处。也不必同时在线,实现了双方通信。底层通过TAO/ACE这种基于CORBA标准的中间件参照OMG DDS规范来实现的,主要是用于对时间和数据比较苛刻的场合,比如航空航天,电子,工业自动化

2014-04-16 21:42:49 7184 1

转载 Why C++? 王者归来

转载于 http://www.cnbeta.com/articles/171221.htm

2014-04-16 21:26:54 1025

原创 根据qt工程pro生成工程

cd /D D:先切换到qt工程没落qmake -tp vc dombookmaks.pro

2014-04-16 10:21:27 667

原创 规则一 头文件依赖于前向申明

•什么是前向申明–当我们在头文件中需要类的定义时,只需要申明class CLASSNAME就可以了,无需使用#include “CLASSNAME.h”–•【带来的优势】–较少文件依赖,节约编译时间–更加明确的类的依赖关系–•【规则】–尽可能多的使用前向申明上面这个规则的意思的是 如果你这个值

2014-04-12 10:07:22 1024

转载 关于前置声明与C++中头文件相互包含的几点问题

一个前置声明是指在程序员尚未给出完整定义之前对一个标示符(一个类型、一个变量或者一个函数)的声明。一个很简单的例子就是我们在函数A中使用了函数B,但是函数B的声明在函数A之后,这个时候,就需要对函数B进行前置声明,实际上就是在函数A之前提供一个函数B的原型(prototype)。这种现象其实在C语言编程中我们已经习以为常了,在C++中亦是如此,只不过在编写较大规模程序的时候,由于定义了较多的类,而

2014-04-12 09:56:14 1083

转载 linux下查看磁盘空间

如果要查看磁盘还剩多少空间,当然是用df的命令了。[root@localhost ~]# df -h 文件系统              容量 已用 可用 已用% 挂载点 /dev/sda2              14G   11G 2.6G 82% / /dev/sda1              99M   14M   81M 14% /boot t

2014-04-10 23:46:59 640

原创 Linux tar打包命令

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc # 特别注意,在参数 f 之后的

2014-04-10 23:46:24 752

转载 图解Ubuntu 12.04设置wifi无线热点

图解Ubuntu 12.04设置wifi无线热点在房间、寝室都有宽带,电脑可以上网。但是没有无线,手机如何上网呢?Ubuntu12.04怎么设置一个无线热点,让手机与电脑共享网络呢?很简单,不需要shell命令,只需在图形界面下操作就可以了。1. 打开Network Connections。切换到Wireless栏目,点击右边的Add,添加一个无线网络;2. 随意填写Con

2014-04-10 23:45:28 2139

原创 C++ 字符串,字符详解

正确写法char ch='M';char buf[64]="192.168.1.12";错误的写法char ch="M";他会报无法从const char * to char的转换因为加双引号表示右边是一个const char *的类型char buf[64] 实际上也是一个const char *的指针所以他的写法可以改为const char * ch

2014-04-10 23:05:48 803

转载 线程池模式比较-------ICE线程池模型------L/F领导者跟随者模式

线程池模式一般分为两种:L/F领导者与跟随者模式、HS/HA半同步/半异步模式。HS/HA半同步/半异步模式 :分为三层,同步层、队列层、异步层,又称为生产者消费者模式,主线程处理I/O事件并解析然后再往队列丢数据,然后消费者读出数据进行应用逻辑处理;优点:简化编程将低层的异步I/O和高层同步应用服务分离,且没有降低低层服务性能。集中层间通信。缺点:需要线程间传输数

2014-04-07 22:16:35 998

redis设计与实现(第二版) 带目录

《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis

2017-09-01

redis-3.0注释版源码

本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis 。 这份注释是作者在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。 在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代码进行任何其他改动, 最大程度地保证了代码的“原汁原味”。 希望这份注释源码能给大家学习和了解 Redis 带来一点帮助

2017-09-01

空空如也

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

TA关注的人

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