自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (2)
  • 收藏
  • 关注

转载 D3D Frustum六个裁剪平面生成原理

概念介绍正在上传…重新上传取消Frustum裁剪是CLOD中很重要的一个算法,很多文章都是一句话就过去,或者直接给出代码。但是数学推导很少给出,本文章的目的就是解释大家看这些代码中的疑问。透视投影是将相机空间中的点从视锥体(view frustum)变换到规则观察体(Canonical View Volume,CCV)中,即是世界空间的视锥体(view frustum)中的任何一个点,...

2020-04-07 14:49:23 510

转载 socket程序listen之后,不写accept函数,会是怎样一种情况?

int listen(int sockfd, int backlog);不accept 最大的监听个数就是这个backlog了因为一直没有accept,所以这个里的队列会一直在,不会减少虽然这个backlog是可以手动设置的,但是linux是最大值128如果超过这个数目了,就是无效的,最大也就128(linux下,可以设置的),win是#define SOMAXCONN    

2016-03-11 14:49:00 658

原创 mysql5.7在win下安装

win7 64位下如何安装配置mysql-5.7.5-m15-winx64距离上次安装MySQL已经过去好久了。步骤这些,有可能会忘记。简单记录一下吧。(参考了一些网络上的博客。)1.mysql-5.7.5-m15-winx64.zip下载官方网站下载地址:http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.5-m15-wi

2016-03-10 23:20:04 525

转载 产生N个不重复的随机数的快速算法

int startArray[] = {0,1,2,3,<span class="number">4,5,6,7,8,9};<span class="comment">//seed array    int N = 10;//随机数个数   &nbsp

2016-01-29 11:48:13 369

转载 Sublime Text 2支持GB2312和GBK,解决中文显示乱码问题

Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦。不过Sublime Package Control所以供的插件可以让Sublime Text 2几乎完美地支持CJK编码的文本。安装Sublime Package Control非常简单,在Sublime Text 2上用Ctrl+~打开控制台并在里面输入以

2016-01-09 09:43:55 396

转载 function_traits

templatestruct function_traits{private: using call_type = function_traits ;public: using return_type = typename call_type::return_type; static const std::size_t arity = call_type::ar

2015-11-28 13:32:11 1554

转载 二分查找算法

int binary_search(int* a, int len,int goal){int low=0;int high= len-1;while(low high){int middle= (low+ high)/2;if(a[middle]== goal)return middle;//在左半边else

2015-11-13 17:13:26 307

转载 c++实现读写共享锁

一、使用互斥锁和条件变量实现读写锁:[cpp] view plaincopyclass readwrite_lock  {  public:      readwrite_lock()          : stat(0)      {      }        void readLock()

2015-11-12 10:16:00 848

转载 Redis在游戏服务器中的应用

Agent`K 最近在使用Redis,忽然发现以前很多费神的事情都迎刃而解了,又应了经典:我们要做的99%的事情,别人都早已做过了!(扫盲:Redis是内存型、键值对型数据库,独立运行,不是第三方库)排行榜游戏服务器中涉及到很多排行信息,比如玩家等级排名、金钱排名、战斗力排名等。一般情况下仅需要取排名的前N名就可以了,这时可以利用数据库的排序功能,或者自己维护一个元

2015-11-04 14:43:35 1365

转载 mongodb数据文件格式(二)

mongodb数据文件格式 本文适合于对mongodb有一定了解的朋友阅读。mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。  www.2cto.com  dbname.ns文

2015-10-20 19:38:49 838

原创 mongodb3.x认证

MongoDB-CR Authentication failed的解决方法:use admindb.system.users.remove({}) <== removing all usersdb.system.version.remove({}) <== removing current version db.system.version.insert({ "_id" :

2015-10-19 22:11:09 328

转载 mongodb数据文件格式(一)

有人在Quora上提问:MongoDB数据文件内部的组织结构是什么样的。随后10gen的工程师Jared Rosoff出来做了简短的回答。每一个数据库都有自己独立的文件。如果你开启了directoryperdb选项,那你每个库的文件会单独放在一个文件夹里。数据库文件在内部会被切分成单个的块,每个块只保存一个名字空间的数据。在MongoDB中,名字空间用于区分不同的存储类别。比如

2015-10-14 20:35:40 6462

转载 VS2013将新建的源码文件的编码格式自动设置成UTF8

VS 2013 新创建的cpp和h文件默认是GB2312的,为适应国际化需求,现在都使用UTF-8格式,下面教大家设置为默认UTF-8进入vs安装目录的 Microsoft Visual Studio 12.0\VC\vcprojectitems用 VS2013打开 newc++file.cpp 和 hfile.h 文件,在里边加入如下内容:#pragm

2015-10-11 20:09:16 649

原创 gdb打数据断点

超过4字节或8字节的那种断点,watch (char[28])*0x7fffffffe350

2015-09-21 18:59:55 688

转载 linux nc命令使用详解

功能说明:功能强大的网络工具语 法:nc [-hlnruz][-g网关...>][-G指向器数目>][-i延迟秒数>][-o输出文件>][-p通信端口>][-s来源位址>][-v...][-w超时秒数>][主机名称][通信端口...]参 数: -g网关> 设置路由器跃程通信网关,最丢哦可设置8个。 -G指向器数目> 设置来源路由指向器,其数值为4的倍数。 -

2015-09-14 20:08:12 1006

转载 技巧:Linux 动态库与静态库制作及使用详解

标准库的三种连接方式及静态库制作与使用方法Linux 应用开发通常要考虑三个问题,即:1)在 Linux 应用程序开发过程中遇到过标准库链接在不同 Linux 版本下不兼容的问题; 2)在 Linux 静态库的制作过程中发现有别于 Windows 下静态库的制作方法;3)在 Linux 应用程序链接第三方库或者其他静态库的时候发现链接顺序的烦人问题。本文就这三个问题针对 Lin

2015-09-11 20:11:23 414

转载 《深入应用C++11:代码优化与工程级应用》勘误表

《深入应用C++11:代码优化与工程级应用》勘误表,会不断更新,欢迎读者留言或发邮件([email protected])给我提出宝贵意见。1.第7.3节目录final和override关键字应该改为标识符;这个问题由园友“李奥霍克”和“Cu2S”指出, 在此表示感谢。2.page 156, 倒数第三行代码newint应该为new int3.page 177,倒数第三行语句uniq

2015-08-26 12:47:51 928

转载 linux下函数调用栈Backtraces函数

BacktracesA backtrace is a list of the function calls that are currently active in a thread. The usual way to inspect a backtrace of a program is to use an external debugger such as gdb. However,

2015-08-02 12:22:18 622

转载 operator new和operator new[]区别?

对于C++来说new操作分为两步:(1) 申请一块内存(operator new), 相当于malloc(2) 调用构造函数(placement new)而delete的操作也分两步(1') 调用析构函数(2') 释放内存,相当于free关于申请释放内存的部分我们可以不用想太多,直接理解把它们理解为malloc/free就行,要内存的时候只需传给它大小,释放的时候只

2015-08-02 12:20:13 512

转载 cmake用cotire设置gcc的预编译头

一、预编译头    当工程大了,单机编译速度会很慢。预编译头会提高很大的速度。相关原理这里不赘述,网上很多。(或者老夫有空的时候再补充)​二、cmake设置gcc的预编译头    一开始google到一个国内同行写的cmake宏,用了下,貌似不是很好用。另外作者也表示还是有bug。    后来找到cotire。目前使用良好。    三、cot

2015-08-02 12:19:45 2776

转载 tcpdump非常实用的抓包实例

详细的文档见tcpdump高级过滤技巧基本语法========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# tcpdump -i eth1 host 192.168.1.1- 源地址# tcpdump -i eth1 src host 192.168.1.1- 目的地址# tcpdump -i

2015-07-24 11:27:54 358

转载 Boost库中的Traits(is_float, is_class)

对以判断是不是某个基本类型(整数, 浮点, bool)可以参考下面代码:3. is_float[cpp] view plaincopytemplatetypename T>  struct is_float : bool_typefalse>{};    #define IS_FLOAT(T)  template : bo

2015-07-23 14:03:58 723

转载 tolua++实现分析

项目正在使用cocos2dx的lua绑定,绑定的方式是tolua++。对大规模使用lua代码信心不是很足,花了一些时间阅读tolua++的代码,希望对绑定实现的了解,有助于项目对lua代码的把控。从阅读结果上来看,起码在内存管理上,帮助还是很大的。1.tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,userda

2015-07-05 13:37:40 378

转载 Java在游戏服务器开发中的应用

随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户端与服务器端。客户端是玩家接触的游戏图像显示端,服务器是处理游戏运行中的各种数据,由于一台服务器要支持众多玩家的请求,所以服务器的性能高低决定了同一个游戏的用户数量。我们公司选择使用Java做服务器开发语言,主要原因是:1.Java是跨平台的,方便部署;2.Java

2015-05-22 12:29:10 586

转载 window环境下glog的使用

先下载glog最新版,解压里面有*sln文件,如果你安装了VS2005以上版本都可以直接打开,编译即可得到libglog.dll和libglog.lib文件,拷贝文件到你的测试文件夹下,并拷贝src\windows\下的glog目录到你的工程文件下。        如下是一个测试代码,       [cpp] view plaincopy

2015-04-29 22:59:22 424

转载 Lua与c++互调

上一节我们实现了一个c++的封装类,通过该类我们就可以调用lua中的函数。可是这还满足不了我们的需求,我们还想通过lua来调用我们c++的方法。通过研究/tolua++-1.0.93/src/tests下的例子,结合c++的特性,我总结了一个tolua的例子。不能说相当完美,但是基本的功能已经能够满足项目的需求了,而且通过这个例子,也可以使各位对tolua的语法以及用法有一个初步的了解。本

2015-04-21 18:11:59 525

转载 Lua基础学习(二)

本节我将一步一步带领大家完成c++调用lua函数并接受lua的返回值,通过分析调用的方式来封装一个类,最终封装完成的类并不是最优的,但应该能够满足一般的项目中对lua调用的功能。不足之处欢迎大家给予指正。 1    基本概念1.1      栈c++调用lua是通过一个抽象的栈来实现数据的交换的。C++调用lua时,首先需要把lua函数需要的参数压入这个抽象的栈中,

2015-04-21 18:09:31 355

转载 Lua基础学习(一)

Lua基础学习要学习tolua++的使用,首先也得先学会lua的基本语法和lua与c/c++之间的接口调用。本次总结意在把lua的一些基本的用法总结归纳一下,好让大家可以在短时间内对lua有一个简单的了解,达到可以看懂lua代码的目的。注:注释:单行注释:--多行注释:--[[    --]]lua大小写敏感1.  基本类型1.1     

2015-04-21 18:08:21 452

转载 STL Support Tools

STL Support ToolsWhen you try to use GDB's "print" command to display the contents of a vector, a stack, or any other GDB abstract data structure, you will get useless results. Instead, download

2015-03-14 11:38:34 426

原创 GLIBCXX_DEBUG开启STL检测功能

string在GLIBCXX_DEBUG宏是否存在的情况下处理方式不同,不同的库如果没带该选项而自己的项目又定义了它,有可能造成冲突导致程序挂掉,但是又想使程序项目在STL检测的庇护下,可以修改/usr/include/c++/4.7/debug/debug.h头文件,将#ifndef _GLIBCXX_DEBUG修改为#ifndef _GLIBCXX_DEBUG_,然后在自己的项目中定义

2015-03-12 16:20:58 1197

转载 linux通过端口号查看进程名

iftop -i eth0 -P //查看网络流量方法一 1.通过lsof命令查看PID 1.1、简单而实用的查看 [root@test proc]# lsof -i:8080 1.2、ipv4/ipv6 [root@test proc]# lsof -Pnl +M -i4(i6) 也可以使用: [root@test proc]#lsof -Pnl +M

2015-02-26 14:47:59 1862

原创 git配置

第一步,安装git:$ sudo apt-get install git第二步,创建一个git用户,用来运行git服务:$ sudo adduser git第三步,创建证书登录:收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。证书的制作参照ssh-ke

2015-02-15 21:18:23 454

原创 linux为用户添加sudoer

切换到root用户,进入etc目录 “cd /etc”为sudoers文件添加写入的权限:使用命令   chmod u+w sudoersroot    ALL=(ALL)       ALLlishaoyu ALL=(ALL)      ALL  (在root下面添加这行)chmod u=r-- sudoers   将文件权限改回来即可

2015-02-07 22:39:21 3779

原创 CMake生成版本号

CMake生成版本号(金庆的专栏)原来的CMake需要用shell脚本生成SVN版本号,再作为cmake参数传入。CMake调用脚本示例:#!/bin/sh# cmake.shServerCodeRoot=~/Code/ServerCodeRevNum=`svn info ${ServerCodeRoot} | grep Revision | awk

2015-01-13 22:54:58 3761

原创 sublime 配置python

安装 Sublime Package Control1、打开 Sublime Text 2,按下 Control + ` 调出 Console2、将以下代码粘贴进命令行中并回车:import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.maked

2015-01-12 14:31:47 514

转载 mongodb shell问题

1、MongoDB Shell中退格键使用的问题。利用SecureCRT工具访问linux的时候,在使用MongoDB的交互式shell的时候,退格键(Backspace)无法使用,导致无法修改输入的字符。为这个错误,废了好长时间的力气,终于找到了错误的原因。其实,主要是SecureCRT工具默认的字符输入模式的问题,可以通过以下方式修改:第一步:选择Option菜单中的Sessi

2015-01-07 00:45:50 489

原创 gdbserver远程调试代码

gdbserver  192.168.1.188:5000 zonemain //远程创建监听(待被调试)本地连接调试:先gdb zonemain 然后再 target remote 192.168.1.188:5000

2015-01-06 21:30:17 788

转载 Bash Shell 里的各种括号

今天在 SegmentFault 上看到又有人问起关于Shell里各种括号的问题。对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括号的用法和区别,别的Shell我不会。。。(( )) :一对圆括号有两个地方用到。1,for循环,for (( expr1 ; expr2 ; expr3 )) 这里一对双括号里边的表达式,GNU的文

2015-01-05 21:53:10 525

原创 centos mail发送qq邮件

vi /etc/mail.rc添加两行set [email protected] smtp=smtp.qq.comset [email protected] smtp-auth-password=lishaoyu1989 smtp-auth=loginfrom是发送的邮件地址smtp是发生的外部smtp服务器的地址smtp-aut

2014-12-28 13:04:26 1238

原创 vs2013解决方案资源管理器怎样靠左

鼠标一定要拖到提示框内才放手。这时,系统会自动将解决方案资源管理器放到合适的位置。

2014-12-27 15:07:24 1939

猴子选大王源码这是循环链表做的

猴子选大王的源码,这是用循环链表做的,可不是用数组做的哦。

2009-11-13

不错的C#教材,练就几本功很重要

不错的C#入门教材,对基本概念讲解很详细

2008-12-03

空空如也

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

TA关注的人

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