自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Newzai的专栏

C++爱好者,专注C++后台开发。涉猎 Scala、Java,C#,python等其他语言。

  • 博客(38)
  • 资源 (5)
  • 收藏
  • 关注

原创 web socket RFC6455 connection --asio C++11

#ifndef __APP_WEBSOCKET_CONNECTION_H__#define __APP_WEBSOCKET_CONNECTION_H__#include #include "tcp_connection.hpp"class websocket_connection : public tcp_connection{public: websocket_connecti

2014-05-19 15:41:18 1733

原创 web socket RFC6455 frame 打包、解包

#ifndef __APP_WEBSOCKET_FRAME_H__#define __APP_WEBSOCKET_FRAME_H__#include "memory.hpp"class buffer;struct websocket_frame{ websocket_frame(); ~websocket_frame(); static const unsigned int f

2014-05-16 18:46:17 2431

原创 Web Socket rfc6455 握手 (C++)

web socket rfc6455 握手。。

2014-05-16 18:40:38 1787

原创 Base64 基于C++ bitset实现。

Base64基础知识可以参考此文章,非常详细:http://blog.csdn.net/morewindows/article/details/11871429转换为Base64,输入数据必须以三个字节为一组,转为为4个字节的可视字符。下面主要是根据下图的映射表就行编程:以下代码实现了Base64的编码规则#include #include #include

2014-05-06 21:36:24 1685

原创 C++ 11 并发: 正确 的使用条件变量-condition_variable

1. 标准实例http://en.cppreference.com/w/cpp/thread/condition_variable在cppreference提供的对 cv的例子,condition_variable和mutex都是全局变量。但是我们的程序不可能到处使用全局变量。如果把condition_variable和mutex的定义放到main函数中进去,作为局部变量,并且循环

2014-05-06 16:40:42 3469 1

原创 基于C++11的线程池

封装了一个基于C++11的线程池对象。异步执行的任务,从线程池中分配一个空闲的线程来执行该任务.如果没有空闲的线程可以执行,则进入队列排队 task_pool_init(10); for( int i = 0 ; i < 200 ; i ++ ) { run_job([i]{ std::this_thread::sleep_for(std::chrono::seconds(1)); }); } ...........................

2014-05-06 16:09:10 2138

原创 wireshared-protobuf:proto.c:1765: failed assertion \"(guint)hfindex < gpa_hfinfo.len\"

这个问题一般出现在TCP连接中。会导致这个问题的原因基本上是和wireshared的粘包处理有关系。 一般是因为网络发送的包和抓包软件捕获的包错位了。例如,你发送4个包,抓包软件可能捕获到3,4,5,6等个数,不一定是4个。如果发送的数据包是4个,捕获的到的也是4个,而且每个的大小一样,是不会出现1765这个问题的。但是如果抓包软件保持的包的个数和实际的分包个数不一样,就有可能会导

2014-04-19 21:28:38 2008 1

原创 C++ Class Mapped Google Protocol Buffer Message

摘要Google Protocol Buffer 是一个优秀的基于二进制的网络消息编解码框架。应用于项目时,可以节省不少的人力资源、开发时间和程序BUG。但其不足之处是protobuf编译器生成的C++消息类(或者Java等其他语言的消息类)冗余数据过多,需要依赖于protobuf的编解码库,一般情况下都不能用于作为业务逻辑对象。因此大部分情况下,程序都需要另外独立定义业务逻辑对象,并且使

2013-06-03 14:53:29 3984 5

原创 SNMP MIB 文法分析--基于Scala Parser模块

1.为何要分析SNMP MIB文件。 分析MIB文件主要为了提取MIB文件中的oid定义及其对应的OID值,包含(OBJECT-IDENTIFIER 和OBJECT-TYPE等具有OID值的对象).2. 提取OID对象和其值后,有何用户呢?搞SNMP网管开发时,业务对象一般是居于C++,Java,C#等类,而且这些类一般只包含基础成员,没有指针,没有对象成员,没有集合成员等。这些业务对象再也SNM

2013-06-03 10:35:30 2847

原创 Scala 文法词法分析---分析C++类的声明

想要写个C++类的词法文法分析由来已久。一直找不到好的方法,之前尝试使用正则表达式来解析,但是有点受限,正则表达式过于复杂,而且一般是按行分析的。之所以要分析提取C++类的信息,主要还是为了解放劳动力,提高生产效率。我的目标是,以后写代码一般情况下只写类的基础框架,包含类名称,基类及其相关的类成员变量。其它的所有方法接口,都使用分析工具分析后自动生成。当然生成后的代码有些需要小改动后才可使用,有些

2013-05-31 16:05:20 2022

原创 protobuf-wireshark编译小结

一直使用protobuf作为网络开发的私有协议消息通信。但是抓包分析是个问题。幸好目前已经有了支持wireshark的protobuf插件。该插件是基于linux的代码编写的。1. 首先要先搭建好wireshark编译环境,可以参考官方的wireshark编译环境配置,安装上面的配置基本上是无问题。  本人出现在 nmake -f Makefile.name setup 时出现了解压压缩包

2013-04-18 16:18:33 4598

原创 wireshark protobuf 插件

搞网络开发的时候,涉及到很多私有协议。方便是方便,不过抓包分析问题就麻烦了,wireshark是不可能会为我们自己的网络协议开发分析工具的,唯有自己开发协议分析插件。在私有协议方面,google protobuf是一个类似与IDL的语言,用于定义消息接口,并且支持很多语言,原生支持C++、Java和python,而且还有很多第三方的支持,基本上支持C、C#、object-c,AS3,PHP等.

2013-04-18 13:45:03 10947 5

原创 使用Scala编写Android程序

环境搭建:安装JDK和Scala(本人使用2.1)下载Android SDK,最新版本里面已经包含了Eclipse和 ADT插件根据Eclipse版本和Scala版本下载对应的Scala IDE插件。http://download.scala-ide.org/安装AndroidProguardScala,地址https://androidproguardscala.s3.amazo

2013-04-06 23:00:00 5120 2

原创 shared_ptr 在 stl容器中排序的陷阱。

实例代码:// test1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include using namespace std;using namespace std::tr1;

2012-01-14 00:14:35 4068 3

原创 说出来不好意思:从学C++开始,到现在8年了,才知道的using还有这种用法。

#include #include class A{public:A(){}virtual ~A(){}virtual void print(int a) { printf("A:%d\r\n",a);}virtual void print(const std::string & str ) {printf("A:%s\r\n",str.c_st

2011-12-24 15:55:06 2103 1

原创 google protobuf repeated 字段二义性

protobuf 消息的repeated字段,可以包含0~N个相同的内容。当包含的内容大于0时,可以认为是在修改数据或者数据有改变。当包含的内容是0时,也就是不包含时,究竟是不改变原来的数据,还是清空呢?因此在设计协议时,遇到repeated字段时,最好在与某个optional字段相组合,用来指示是否包含相应的repeated字段。例如。message MSG1{

2011-11-02 18:01:19 14556

原创 Google Protobuf 使用介绍

直接在 www.google.com.hk 上搜索google protobuf 后下载官方版本。官方版本支持C++\Java\Python三门语言。还有很多非官方的语言版本支持,如C\NET(C#/Vb.net)\Flex(AS3)等. 要通信,必须有协议,否则双方无法理解对方的码流。在protobuf中,协议是由一系列的消息组成的。因此最重要的就是定义通信时使用到的消息格式。

2011-10-26 11:15:08 19000 2

原创 Java GUI -- Swing之外的选择开源RIA项目:Apache Pviot

Java的GUI框架非常多,从Java内置的AWT、Swing,JavaFx,在到Eclipse(IBM)的SWT/JFace。但是每个框架都是有不尽人意的地方。其中Swing和SWT/Jface算是java GUI框架中比较优秀的。但是面对 Mircosoft的GUI框架,还是太差强人意。。RIA基础的出现使得 GUI的竞争进入了白日化的阶段。Flash、银光,JavaFx等。甚至 Ecli

2010-08-31 21:08:00 3961

原创 喜欢WPF但是不喜欢C#的GUI程序员的第二选择--Apache Pivot

Apache Pivot是一个Java RIA 开发框架。使用XML文件定义GUI的元素层次结构+优化的集合框架,其MVC模型在GUI开发中的效率非常的高兴。。敢兴趣的可以了解了解。Pivot比起传统的Java GUI框架(AWT,Swing,SWT)等都是非常优秀的,比起JavaFx也是有过之而无不及。整个体系结构特别是GUI界面方面和WPF非常类似,但是其数据模型等比起WPF还要更加灵

2010-08-24 08:14:00 1547

原创 关于Apache Pivot UI tooltip属性

<br />1. tooltip 是作为Component的Skin的一部分,而不是控件的一部分。<br />2. 每个控件的tooltip都只有一个,对于ListView和TreeView也是一样。<br />3.tooltip默认实现是不能wrapText的。<br /> <br />如果要实现ListView或者TreeView的每个Item或者Node的toolTip都不一样时,需要重载实现getTooltipText<br />根据当前窗口的鼠标指针动态获取ListView和TreeView的It

2010-06-08 21:06:00 1209

原创 Pivot 1.5--TreeView 动态 tooltip

Pivot TreeView Tooltip

2010-06-08 20:52:00 1226

原创 WPF与 Apache Pivot 比较

为什么要比较WPF和Apache Pivot呢?这两个东西都是八辈子搭不上杆的。一个是属于微软的的GUI系统,一个是属于Java系列的GUI系统,我们来看看他们的相同点吧。1. RIA 让他们走到了一起。WPF是微软RIA的家底。Pivot也是Java的一个RIA框架。他们都可以在浏览器上运行,也可以只是部署在桌面上。2. 两者都可以使用XML文件来定义用户界面,使用代码来处理逻辑。

2010-03-03 09:37:00 3562

原创 Apache Pivot background Task 和 UI thread

Apache Pivot后台线程与UI线程文章中用到的一些术语的说明:UI操作:修改了UI组件的某些属性或则特性,比如修改按钮显示的文本或则图标等或读取UI组件的属性或者特性。非UI操作:不能有修改或则读取任何与UI组件相关的属性或者特性。background Task(后台任务): 用于执行非UI操作的线程。UI thread:用于执行UI操作的线程,一般一个应用程序只有一个

2010-01-26 16:52:00 1869

原创 Pivot WTKX 静态属性

WTKX的元素的属性类型有多种:1.标准的JavaBean属性,代表JavaBean 中的一个setter方法。2.只读序列属性3.只读字典属性4.静态属性 在这里我们主要讨论静态属性,因为静态属性和其它三个属性不相同。对于 标准JavaBean属性,由于有相应的setter方法,因此我们可以确定该属性属于 元素的一个域(字段)。对于只读属性,只读系列属性,该属性属

2010-01-26 09:32:00 905

原创 Pivot WTKX变量绑定

在 Apache Pivot WTKX源文件中的某些组件会使用wtkx:id 对组件进行命名,我们称为“命名对象(named object)”。在编写Java代码时,我们经常要引用到WTKX中的命名对象,比如为某个控件添加事件监听器,修改组件的属性等。有两种方式可以在Java代码中引用到WTKX中命名对象。1.直接通过 WTKXSerializer#get方法,给get方法传递在WTK

2010-01-26 09:09:00 7569

翻译 Apache Pivot WTKX入门

WTKX是用于创建Pivot应用程序的基于XML的标记语言。虽然,通常是用于定义用户界面的结构,但是也可以用于声明创建Java对象。 本节主要介绍WTKX和解释如何使用WTKX创建和配置java对象集合。假定你已经熟悉掌握了Pivot和Java程序设计语言。 元素(element)在WTKX中,一个XML元素可能表示一下其一:一个类的实例一个类实例的特性(属

2010-01-24 20:09:00 13299 8

原创 ACE学习手记-----智能指针(ACE_Intrusive_Auto_Ptr)

 前面一篇写了智能指针,重点介绍了ACE_Auto_Ptr和ACE_Refcounted_Auto_Ptr 两个智能指针的使用,以及他们的不同点。当时对ACE_Intrusive_Auto_Ptr指针还没有深入的了解、也不知道ACE_Intrusive_Auto_Ptr智能指针的用途是什么?  ACE_Intrusive_Auto_Ptr和ACE_Refcounted_Auto_Ptr

2008-11-30 21:08:00 2064

原创 ACE学习手记-----ACE_Log_Msg

  ACE_Log_Msg  log输出目的地与格式:    输出目的地:就是我们要把日志信息输出或者打印到什么地方,比如控制台的屏幕、文本文件或者syslog系统日志文件等。   输出格式:   在用户提交log信息时,是否在用户提交的日志信息前面插入一些标记,比如程序名称、线程id,提交日志消息时的时间、日志优先级等额外的信息。    STDERR 把日志消息输出到

2008-11-29 20:41:00 3469

原创 ACE学习手记 -----关于 ACE_CDR

ACD_CDR编译时的4个宏、下面4个宏在ACE编译时默认都是关闭的。如果要让自己的ACE库有相关的能力需要在config.h中定义以下宏ACE_InputCDR 相关的宏  ACE_CDR_IGNORE_ALIGNMENT  该宏让CDR Stream忽略输入流的字节对其,全部按单字节对其。 如果没有设置该宏,ACE采用8个字节对输入流进行默认对其。  ACE_DISABLE_SWAP_ON

2008-11-27 16:21:00 2857 1

原创 ACE学习手记--- 智能指针(ACE_Auto_Ptr / ACE_Refcounted_Auto_Ptr)

 ACE库提供的智能指针的功能是相当强大的。主要有ACE_Auto_PtrACE_Refcounted_Auto_PtrACE_Intrusive_Auto_Ptr三个智能指针,其中用的比较多的却容易使用的是前面2个。最后一个需要在自己的类中实现一些规定的函数。在这里主要介绍前面2个指针的使用。 ACE_Auto_Ptr  ACE_Auto_Ptr 更像RAII的应

2008-11-24 20:14:00 3857

原创 ACE学习手记----ACE_INET_Addr类

ACE_INET_Addr类,在这个ACE_网络框架中,应该是比较重要的辅助类,该类主要封装了C SOCKET 的地址对象,通过外观封装的模式,把struct sockaddr_in封装在内。方便用户的操作。  因此个人认为掌握此类的常用构造方法和常用的成员函数,并深刻的理解,对于后续的学习ACE或者开发ACE网络应用程序应该会起到很大的帮助。工欲用其器、必先利其器。就先让我们把ACE_I

2008-11-16 14:29:00 9488 2

原创 SQL C++代码自动生成器(sql2class)介绍

sql2class 是一个工具,用于把数据库表格转换为一个C++对象。配合odbcwrapped 和mysqlwrapped 2个面向对象的数据库接口封装库一起使用。 odbcwrapped  用C++类封装了Windows OBDC API的调用。mysqlwrapped  用C++类封装了 Mysql C API的调用。 2个库都使用统一的接口。简化了程序员在开发数据库相关

2008-11-11 22:51:00 3271

原创 GNUGK(2.2.3)源代码分析之线程池结构

GNUGK2.2.3一改之前2.0版本版本的单线程结构。采用了作业(Job,Task)-代理(Agent)-执行者(Worker)三层控制结构 。使整个体系结构更加易于扩展和清晰。在这里主要分析Job,Task,Agent,Worker他们之间的关系,以及Job的派生类Jobs与RegularJob时等。理解Job,Agent,Worker三个类之间的关系,需要跟大家复习一下操作系统中的程

2007-05-24 20:07:00 1344

原创 php调用mysql存储过程和函数的方法

存储过程和函数是MySql5.0刚刚引入的。关于这方面的操作在PHP里面没有直接的支持。但是由于Mysql PHP API的设计,使得我们可以在以前的PHP版本中的mysql php api中支持存储过程和函数的调用。在php中调用存储过程和函数。    1。调用存储过程的方法。      a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,      一个p

2005-04-28 11:30:00 5627

原创 CMPP2.0 SP 端开发设计思路

我写在这里只是想把握的思路记录在这里而已,我并不是CMPP SP开发的高手,我只是刚刚入门而已.问题想多了,总是把前面的东西给忘记了,看来记性不是很好啊,所有要把我想的东西给点点滴滴的记录下来,当然,我的想法也有可能是错误的,希望给予批评改进.应用程序使用的是收发二级缓冲.  一级缓冲 二级缓冲接受数据缓冲 把从网络中接受的数据放在这里rbuffer 只保留CMPP_DELIVER消息结构的对象.

2005-03-16 16:21:00 2650

原创 开发工工具配置笔记——Jcreator(高亮度显示Struts类名)

    前几天在学习P/L SQl时,为了找到一个好的编辑器而烦恼,SQL*PLUS太麻烦了,记事本又太落后了,有些开发工具实在时杀鸡使用牛刀,后来还是选择了UltraEdit来编写PL SQL代码,可是该编辑器又没有默认高亮度显示PL SQL关键字的功能,不过幸好,还是在网上找到了配置的方法。    平时一直在写些Struts代码,除了使用Jb这样的大型工具以外,其他的工具根本就是不提工stru

2004-12-19 00:20:00 1614

原创 Struts 入门好文章,通俗易懂(转载)

       本章讲解了一个简单的Struts应用例子helloapp应用,这个例子可以帮助读者迅速入门,获得开发Struts应用的基本经验。该应用的功能非常简单,接受用户输入的姓名,然后输出“Hello ”。开发helloapp应用涉及以下内容:l         分析应用需求l         把基于MVC设计模式的Struts框架运用到应用中l         创建视图组件,包括

2004-11-02 14:46:00 4867 8

原创 EJB Container/server 提供的服务

           EJB Container是Enterprise java bean的执行环境,它通过EJB Server提供强大的系统级服务(system-level-services),程序员不需要自行去开发和维护这些属于系统层级服务的程序代码,它主要提供有Persistence、security、concurrency和transaction四项重要的系统服务。  Persistenc

2004-10-31 19:25:00 1449

protobuf实例-C#-聊天服务器

protobuf 实例工程,根据 我的protobuf设计原则而提供的一个简单聊天服务的C#实现,工程为VS2013环境,配置为Net 4.0的执行环境。

2014-07-19

wireshark-win32-1.8.6-protobuf

支持google protocol buffer协议的wireshark版本。 1. 支持UDP(原生) 2. 支持TCP,需要固定包头+protobuf二进制负载内容。 包头长度不包含自身,只包含protobuf二进制内容的长度。 包头长度为固定的4个字节。 3. 支持大量的消息嵌套。。

2014-04-24

dirent DIR接口模拟

windows 下模拟linux dir接口。

2013-04-18

protobuf-wireshark测试消息

protobuf -wireshark 测试消息

2013-04-18

protobuf-wireshark plugins

协议分析,可以分析protobuf消息。动态配置文件。 把文件放在(wireshark安装目录)\plugins目录下面。 把配置文件和proto文件放在(wireshark安装目录)\protobuf目录下面 插件基于wireshark 1.8.6 和protobuf 2.4.1版本编译开发

2013-04-18

空空如也

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

TA关注的人

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