自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 lkx语言的总体设计已经发布到github上 (https://github.com/lichuan/lkx)

lkx语言的总体设计

2023-09-03 19:02:37 1588

原创 准备设计一门新的编程语言lkx

类似lua的简洁,但要比lua更规范,更清晰,更方便与c语言互访问,重点支持linux后端,因为lkx语言的目标,就是主要用于后端c/c++的集成。用女儿的名字首字母命名,希望早日呈现给大家。

2023-07-12 18:05:59 336 2

原创 基于c++11新标准开发一个支持多线程高并发的网络库

背景         新的c++11标准出后,c++语法得到了很多的扩展,比起以往任何时候都要灵活和高效,提高了程序编码的效率,为软件开发人员节省了不少的时间。 之前我也写过基于ACE的网络服务器框架,但ACE毕竟有些臃肿,内部对象关系错综复杂,容易给人造成只见树木不见森林的错觉。 所以打算用c++11开发一个较为简洁,高效,支持高并发的网络库。 开源         花了两三周,终

2015-07-09 17:39:41 5494 1

原创 基于ACE设计一个c++网络游戏服务器框架引擎

利用闲暇时间,我正在开发一个网络游戏服务器引擎,取名叫gabriel, 代表圣经里的一个天使,中文名叫加百列。加百列在圣经中是一个大天使长,他负责将上 帝的话语带到世间,并晓谕诸位先知,帮助世人明白上帝的旨意。之所以取这个名字,一方面是向大家推荐《圣经》这本宝书(也算是传福音吧),另一方面也希望这个框架引擎能够起到抛砖引玉的作用,引起同行或是打算从事游戏服务器端开发的朋友的共同探讨,以求共同进步。

2014-01-13 15:00:14 4500

原创 c++组合对象管理

有一些业务逻辑,需要管理多个同样类型的对象,并对外提供查询,删除等接口,在这些场合中,可以将被管理的对象称为Entity,管理Entity的类自然就叫做Entity_Manager,当以这样的方式组织层级对象时,很直观,而且项目的风格统一,每个人一旦熟悉了这种方式,理解别人写的Entity_Manager就很轻松。根据以往的项目经验,我自己实现了Entity和Entity_Manager类,代码如

2013-09-17 13:38:32 1718

原创 用ruby语言编写将c++对象导入到lua脚本的解析器

最近学习ruby语言后,顿时就喜欢上了ruby语言,它的简洁,优美,灵活给我留下了深刻的印象。 之前一直从事游戏服务器研发相关工作,而核心语言是c++和lua, c++是一门编译型语言,所以运行效率非常高,但缺点是每次代码的一个小改动都得重新编译,这大大增加了项目的开发时间,也不适合需求多变的业务环境,而lua脚本语言正好能解决这种矛盾。 所以, 可以将那些需求多变的业务放在脚本中来执行, c

2013-08-14 20:10:06 1888

原创 scons构建系统

scons采用python语言作为其构建语言,因此非常强大灵活,举例如下: SetOption("random", 1) env = Environment(MSVC_VERSION="9.0", CXXFLAGS=["/EHsc", "/MD", "/Zi"], WINDOWS_EMBED_MANIFEST="1", CPPDEFINES=["NDEBUG"]) COMMON_LIBS = [

2012-06-08 13:43:03 1167

原创 用python正则表达式转换php数组到javascript字典

代码如下: #coding=utf-8 """ 将php数组的省市表,转换成js的字典, 并打印出来,如下面的形式: #provinceDict["四川省"] = ["南充市", "成都市"]; #provinceDict["浙江省"] = ["杭州市", "嘉兴"]; ...... 这个例子主要是练习正则表达式...... """ __author__ = 'lc' import r

2012-06-05 17:39:41 5526

原创 用python遍历目录下文件(包括子目录)

#coding=gbk """ 实现服务器资源data文本文件加密 """ __author__ = 'lc' import os import sys import traceback ENCRYPT_DIR = "path" PASSWORD = [0x88, 0x04, 0xfe, 0xef, 0xaa] def check_arg(): if len(sys.argv) !

2012-06-02 15:54:44 1184

原创 用python遍历目录下文件(不包括子目录)

#!/usr/bin/env python #coding=gbk __author__ = 'lc' import MySQLdb import glob import os import sys DB_HOST = "localhost" DB_USER = "root" DB_PWD = "root" DB_DATABASE = "database" CHARVAR_PATH = "di

2012-06-02 15:51:13 3962

原创 gbk转换到utf8

std::string gb2utf8(const std::string strGBK) { const char *str = strGBK.c_str(); const unsigned int CP_GBK = 936; int len = MultiByteToWideChar(CP_GBK, 0, str, -1, NULL, 0); wchar_t* buf1 = new

2012-04-14 16:58:50 681

原创 判断是否是常规的gb2312的编码(不包括空白段),检测特殊符号。

//判断是否为常规gb2312编码区间 static bool isValidStr(std::string data) { if(data.empty()) { return false; } std::string invalidStr = ", . ? /   *:'\"<>|\\;"; if(data.find_first_of(invalidStr) != std:

2012-04-05 21:50:38 1307

原创 epoll的EPOLLLT模式和EPOLLET模式比较

epoll是linux系统最新的处理多连接的高效率模型, 工作在两种方式下, EPOLLLT方式和EPOLLET方式。 EPOLLLT是系统默认, 工作在这种方式下, 程序员不易出问题, 在接收数据时,只要socket输入缓存有数据, 都能够获得EPOLLIN的持续通知, 同样在发送数据时, 只要发送缓存够用, 都会有持续不间断的EPOLLOUT 通知。而对于EPOLLET是另外

2012-02-08 17:55:08 9383

c++代码规范

自己编写的c++代码规范, pdf格式, 欢迎下载

2013-08-03

深度探索c++对象模型(inside the c++ object model) pdf格式

如果你想在c++领域成为真正的高手的话,这本书你非看不可!! 因为它介绍了系统底层如何把c++高级抽象概念实现出来,这本书的作者,就是和c++的创立者当初共事于贝尔实验室的c++二号人物,可想而知,这本书会带给你怎样的震撼!!!!!!! 赶快下载吧,pdf格式的,超清晰..

2009-11-29

空空如也

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

TA关注的人

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