- 博客(221)
- 资源 (3)
- 收藏
- 关注
翻译 zeroMQ初体验-2.发布订阅模式(pub/sub)
PythonSocketpub/sub模式:发布端(pub)Python代码 importitertools importsys importtime importzmq defmain(): iflen(sys.argv)!=2: ...
2019-07-25 15:12:28
1092
原创 C++中成员以其在类中声明的顺序构造
分析以下代码的输出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include<iostream> usingnamespacestd; ...
2019-07-25 15:11:30
685
转载 QT POST/GET 发送/获取网页数据
#include #include QNetworkAccessManager *m_accessManager;1234Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); m_accessManager = new QNet
2018-01-29 19:04:15
1466
转载 Qt5 HTTP GET方法
开发环境 Qt5.5.1、Qt Creator 3.5.1 HTTP是超文本传输协议,它是一种文件传输协议。Qt实现HTTP主要用到这三个类(1)QNetworkAccessManagerThe QNetworkAccessManager class allows the application to send network requests and receive repl
2018-01-29 19:00:11
2933
转载 Qt网络编程之实例一GET方式
看了两天的Qt网络编程,其实主要就是看了看QNetworkAccessManager、QNetworkRequest和QNetworkReply这三个类的主要内容。在之前,Qt网络编程主要是使用QHttp等类,但是现在在帮助手册中这些类已经标记为过时的,所以,现在用Qt编写网络程序最好还是使用上面的三个类,之前也说过,对于一个应用程序来说,一个QNetworkAccessManager已经足够了。
2018-01-29 18:54:27
832
转载 RCF—用于C++的进程间通讯(4)
可扩展性传输对于前一个版本的RCF,一个(应得的)批评是关于它和TCP协议过度紧密的关系。现在RCF采用了传输无关的设计,并且对于初用者,可以使用它支持的TCP和UDP协议。更重要的是,它的架构很容易支持第三方开发自己的客户端/服务器端的传输。在客户端,I_ClientTransport基类给客户端调用提供了钩子。在服务器端,需要写一个服务。RcfServer服务类RcfS
2017-03-25 14:39:48
1886
转载 RCF—用于C++的进程间通讯(3)
过滤器(Filters)RCF通过过滤器的概念来支持对消息的压缩和加密。过滤器需要同时应用于服务器端和客户端。也可以被应用于传输层,例如应用SSL过滤器到向TCP这样基于流的传输;或者应用于独立的消息载荷,例如压缩像UDP这样基于包传递的消息。前者称为传输过滤器,后者称为载荷过滤器。传输过滤器在一个服务器-客户的会话中安装一个传输过滤器是由客户端发起的。客户端查询服务器端是否支持给
2017-03-25 14:39:06
1317
转载 RCF—用于C++的进程间通讯(2)
列集(Marshaling)RCF决定哪个方向的参数被列集时,是遵循C++惯例的。特别地,一个接口的所有的参数都是入参(in parameter),所有的non-const引用参数都是in-out参数,所有的返回值都是出参(out parameter)。但是也没有强制规定一定要遵循这些in/out/inout惯例。并不是C++里的所有东西都可以被安全地列集,这也限制了接口方法的参数类型。也
2017-03-25 14:38:22
849
转载 RCF—用于C++的进程间通讯(1)
导言RCF(Remote Call Framework,远程调用框架)是一个C++的框架。这个框架用来为实现C++程序进程间调用提供一个简单和一致(consistent)的方法。这个框架基于强类型的C/S接口概念,类似于用户所熟悉的CORBA,DCOM这样的中间件。然而,因为RCF只应用于C++,所以可以充分利用C++特性,从而提供一个以相对简单和整洁的方式实现进程间调用。这是RC
2017-03-25 14:37:32
3418
转载 Quartz学习(转载)
介绍QuartzQuartz是一个开源的任务调度系统,它能用来调度很多任务的执行。运行环境Quartz 能嵌入在其他应用程序里运行。Quartz 能在一个应用服务器里被实例化(或servlet容器), 并且参与XA事务Quartz能独立运行(通过JVM),或者通过RMIQuartz能被集群实例化任务调度当一个指定给任务的触发器发生时,任务就被调度执行. 触发器能被创建为:
2017-03-23 11:23:26
685
转载 Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JS
2016-06-09 14:05:53
516
翻译 继 <ZMQ的学习和研究> Request-reply broker in C++
////Simple request-reply broker in C++//// Olivier Chamoux olivier.chamoux@fr.thalesgroup.com>#include "zhelpers.hpp"int main (int argc,char *argv[]){//Prepare our context and sock
2016-04-15 14:15:09
697
翻译 继 <ZMQ的学习和研究> Request-reply worker in C++
////Request-reply service in C++//Connects REP socket to tcp://localhost:5560//Expects "Hello" from client, replies with "World"//// Olivier Chamoux olivier.chamoux@fr.thalesgroup.com>
2016-04-15 14:12:37
495
翻译 继 <ZMQ的学习和研究> 学习代码 Request-reply client in C++
//Request-reply client in C++//Connects REQ socket to tcp://localhost:5559//Sends "Hello" to server, expects "World" back//// Olivier Chamoux olivier.chamoux@fr.thalesgroup.com>#includ
2016-04-15 14:08:50
759
转载 继 <ZMQ的学习和研究> 学习代码 Multiple socket reader in C++
Multiple socket reader in C++ ////Reading from multiple sockets in C++//This version uses a simple recv loop//// Olivier Chamoux olivier.chamoux@fr.thalesgroup.com>#include "zhelpe
2016-04-15 14:03:17
388
转载 ZMQ的学习和研究
一、ZeroMQ 的背景介绍 引用官方的说法: “ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。现在还未看到它们的成功。但是,它无
2016-04-01 13:38:21
4912
1
转载 windows下Google Protocol Buffer 编译安装教程
protobuf的全称是Protocol Buffer,它是google 的一种数据交换的格式,可用于用于分布式应用之间的数据通信或者异构环境下的数据交换, 最近因为项目的需求,需要接触Protobuf,在官方提供的压缩包中,提供了Linux下的编译脚本,但是,由于项目在windows下开发,因此,需要在Windows编译和安装Protobuf,结合自己的探索,希望能够帮助到初次接触
2016-03-31 16:57:32
627
转载 Protocol Buffer的安装与使用
最近要在产品中改进对象的序列化了。以前用的是java默认序列化实现功能,在产品上线之前要对关键的对象进行序列化/反序列化优化,以期改善存储效率。这里选取了Protocol buffer作为最终的方案,原因主要有以下几个方面:1 java默认序列化效率较低。2 apache的thrift方案并无明显优势,但是使用成本较高,安装等较为麻烦。3 虽然PB不支持map,但是我们的应用中m
2016-03-31 16:42:26
427
转载 Google Protocol Buffer 的使用和原理
简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol
2016-03-31 16:38:16
369
转载 Protocol Buffer技术详解(数据编码)
之前已经发了三篇有关Protocol Buffer的技术博客,其中第一篇介绍了Protocol Buffer的语言规范,而后两篇则分别基于C++和Java给出了一些相对比较实用而又简单的示例。由于近期工作压力很大,因此对于是否继续写本篇博客也确实让我纠结了几天。但每每想到善终如始则无败事这句话时,最终的决定还是既然开始了,就要尽自己最大的努力去做,而不要留有丝毫的遗憾。 该篇Blog
2016-03-31 16:35:28
406
转载 Protocol Buffer技术详解(Java实例)
该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++、Java和Python,其中Python主要用于编写各种工具程序。然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍。
2016-03-31 16:33:19
331
转载 Protocol Buffer技术详解(C++实例)
这篇Blog仍然是以Google的官方文档为主线,代码实例则完全取自于我们正在开发的一个Demo项目,通过前一段时间的尝试,感觉这种结合的方式比较有利于培训和内部的技术交流。还是那句话,没有最好的,只有最适合的。我想写Blog也是这一道理吧,不同的技术主题可能需要采用不同的风格。好了,还是让我们尽早切入主题吧。 一、生成目标语言代码。 下面的命令帮助我们将M
2016-03-31 16:26:50
479
转载 Protocol Buffer技术详解(语言规范)
该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一
2016-03-31 16:23:40
413
转载 CoolFormat源代码格式化工具
软件介绍: CoolFormat源代码格式化是一款C\C++\C#\CSS\HTML\Java\JavaScript\JSON\Objective-C\PHP\SQL\XML代码格式化工具。软件可以快速多种风格格式化,并对语言进行着色。界面采用Office 2010风格,并有多种样式可以替换。并且支持代码高亮到网页上显示,方便博客文章之类的撰写阅读。使用介绍:
2016-03-31 16:13:40
379
转载 TraceTool 跟踪工具的瑞士军刀(C++版使用)
TraceTool查看器可以显示多种类型的来源(从提供的框架、日志文件、事件日志、或者OutputDebugString方法)。一个简单而强大的客户端框架发送简单的跟踪,分组跟踪,类和对象浏览器,转储,调用堆栈。主页:http://www.codeproject.com/KB/trace/tracetool.aspx下载C++ demo, library, and docume
2016-03-24 18:42:03
1606
转载 C++类的特性相关题目
1.01020304050607080910111213141516171819202122232425262728293031323334#include using namespace std;
2016-03-24 18:32:39
465
转载 静态代码检查工具的使用(cppcheck)
所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。比如无意间写了这样的代码: int n = 10; char* buffer = newchar[n]; buffer[n] = 0; int n = 10;char* buffer = new char[n];buffer[n] = 0;这完全是符
2016-03-24 14:47:20
1026
转载 Cppcheck 1.54 C/C++静态代码分析工具
Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型。 官方上建议让编译器提供尽量多的警告提示:1.使用Visual C++的话,应使用警告等级42.使用GCC的话,参看Warning options - using GCC 官方地址:http://cppcheck.sourceforge.net/当前版本:1
2016-03-24 14:44:55
1722
转载 C++类的静态成员详细讲解
C++类的静态成员详细讲解在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文
2015-11-11 16:32:23
361
转载 浅淡C/C++中的typedef和#define
在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏 定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef 用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。1.typedef关键字 typ
2015-11-11 15:58:00
440
转载 浅淡数组和指针
谢谢大牛的分享,看完后让我对数组与指针有了更深刻的理解,在此谢过!转载:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242138.html http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html
2015-11-11 15:36:08
416
转载 static用法详解(精华篇)
static用法详解一. 面向过程程序设计1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include void fn(); static int n; //定义静态全局变量 void main()
2015-11-11 14:43:44
563
转载 结构体、共用体简单比较
结构体、共用体 1 #include 2 union 3 { 4 int i; 5 char x[2]; 6 }a; 7 8 void main() 9 { 10 a.x[0] = 10; 11 a.x[1] = 1; 12 printf("%d",a.i); 13 } 14 答案:266 15 16
2015-11-11 14:39:59
532
转载 strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数strcpy函数:char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL)); char *address = Dest; wh
2015-11-11 14:37:54
523
转载 memmove,memcpy函数详解
写一个函数,完成内存之间的拷贝void* mymemcpy( void *dest, const void *src, size_t count ) { char* pdest = static_castchar*>( dest ); const char* psrc = static_castconst char*>( src );
2015-11-11 14:36:08
1232
转载 strcpy函数详解及strcpy与strncpy比较
1 #include 2 #include 5 void myStrcpy(char* Dest, const char *Src) 6 { 7 assert((Dest!= NULL)&&(Src!=NULL)); 8 while((*Dest = *Src)!='\0') 9 {10 Dest++;11 Src++
2015-11-11 14:33:33
1117
转载 C++重点知识(精华篇)
来源:http://www.cnblogs.com/lzjsky/archive/2011/01/18/1938507.html2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完 毕后,相当于目标变量名有两个名称,即该目标原名
2015-11-11 14:23:13
1192
转载 static深入详细解释
面试题:static有什么作用?答:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 一、 定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点:(1) 在全局数据区内分配内存(2) 如果没有初始化,其默认值为0(3) 该变量
2015-11-11 11:44:10
407
转载 内存泄露概述
内存泄露 1.简介 在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习
2015-11-11 10:49:24
740
转载 C++中指针和引用的区别(超详细)
指针和引用主要有以下区别:引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。引用初始化后不能被改变,指针可以改变所指的对象。不存在指向空值的引用,但是存在指向空值的指针。注意:引用作为函数参数时,会引发一定的问题,因为让引用作参数,目的就是想改变这个引用所指向地址的内容,而函数调用时传入的是实参,看不出函数的参数是正常变量,还是引
2015-11-10 17:40:31
69031
19
转载别人 高仿QQ界面,可用于即时通迅工程
2015-08-31
CButtonST类Demo
2015-08-09
程序员面试宝典
2015-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人