- 博客(32)
- 收藏
- 关注
原创 nginx网络层分析
近来有空阅读了一下高性能开源http服务器nginx的源代码,因为整个代码有接近10w行,所以只能先分析一下我比较关心的网络层的连接处理。首先从主函数main进去,前面的配置初始化先略过,看到如下代码: if (ngx_process == NGX_PROCESS_SINGLE) { ngx_single_process_cycle(cycle);
2011-10-24 20:25:28
2319
原创 ubuntu利用samba映射磁盘到windows
1、首先在ubuntu安装好samba,具体步骤为:安装samba:sudo apt-get install samba安装smbclient:sudo apt-get install 安装smbfs:sudo apt-get smbfs2、修
2011-09-08 19:24:47
2311
原创 一个ftp下载的shell脚本
ftp -v -n 192.168.161.31<<EOFuser ftp ftpbinarycd serverlcd project/serverpromptmget *closebyeEOF
2011-08-15 20:02:15
487
原创 tcp长连接判断对方断开的方法
1、心跳包2、keepalive检测,对于设置了keepalive来说,当tcp检测到对端socket不再可用时(不能发出探测包,或探测包没有收到ACK的响应包),select会返回socket可读,并且在recv时返回-1,同时置上errno为ETIMEDOUT。此时TCP
2011-08-01 19:52:12
8022
原创 多叉树的递归和非递归遍历
void travel(Node *pNode){ stack stack; stack.push(pNode); Node *lpNode; while(!stack.empty()) { lpNode = stack.top();
2011-07-19 20:54:43
15489
原创 windows程序崩溃钱的处理
遇到意外情况的宕机,为了友好地提示用户,并且有机会上传数据找出bug的原因,可以使用如下函数SetUnhandledExceptionFilter
2011-07-18 19:39:31
626
原创 VC中添加库文件和头文件
tools->options->Projects and Solutions->VC++Directories然后在show directories for选择添加。
2011-07-08 12:49:56
700
原创 windows下c连接mysql
1、在vc工程中加入C:\Program Files\MySQL\MySQL Server 5.5\include头文件的路径,C:\Program Files\MySQL\MySQL Server 5.5\lib和静态库的路径2、代码#include #include #inc
2011-07-08 12:37:03
719
原创 ubuntu 安装和配置mysql
1、安装,sudo apt-get install mysql-server输入超级用户密码,就会自动安装了,中间会询问root用户的密码。2、给用户设置权限和密码,如 grant select,insert,update,delete on *.* to user1@local
2011-07-07 20:10:54
515
原创 windows环境下配置apache svn服务器
1、安装apache服务器,server的url直接输入本机的ip地址,安装完毕后代开Apache2.2\conf\httpd.conf,listent改为8088,在浏览器输入http://localhost:8088/测试,显示It works!表明安装成
2011-07-06 20:15:07
733
原创 visual studio 运行命令行参数
Project->xxx Properties打开对话框 Configuration Properties->Debugging Command arguments输入参数
2011-06-22 19:36:00
1393
原创 一道传说是智力170的题目
今日一同事有一道做出来有智力170的题目,反正得闲没事就做做啦,结果30分钟就给我解决了,囧! 题目:有10个球,其中一个的质量与其他九个是不同的(不知道是重还是轻),要求用天枰称3次,找到质量不同的一个球。 我的解法:1、把10个球分成3份,3:3:4,标记为A、B、C。2、把两份3个球的A、B放到天枰两边称,如果重量相等,则不同重量的一个在4个的那份C,显然再称两
2011-06-17 21:40:00
839
原创 解决visual studio有时无法设置断点的问题
Tools->Options,选择dubegging->General,把一项Require source files to exactly match the original version的打钩去掉
2011-06-03 15:05:00
2780
原创 c函数指针和c++类成员函数指针
<br /> c的函数指针还是很简单的,很好用的,直接看代码吧<br />#include <stdio.h>void cFunction(){ printf("cFunction;/n");}//c函数int main(void){ //定义新类型 CFunc typedef void( *CFunc)(); //把函数地址进行赋值 CFunc func = &cFunction; //the same as cFunc
2011-04-21 19:18:00
636
原创 xml导入到mysql的小问题
<br /> 是一个小问题,却搞了半天,因为在游戏开发中需要先根据策划需求建好数据表,然后导出成excelXml给策划填写和更改,然后再把excelXml转换成csv格式,最后用mysql导入csv的数据,谁知搞了几次都不成功,中文的东西都没导入进去,搞来搞去最后发现用UE把csv文件转换成utf8就ok了,特此记下!!
2010-09-16 19:26:00
883
原创 指向指针的指针 **
c/c++的指针是难点,很多地方都有提及,就不一一概述了。这里说说指向指针的指针的作用。1、指向一种自定义类型。可能我是从高级语言(JAVA、python等)过来的,所以喜欢这样描述,例如认为int、long等是值类型,struct xx的为自定义类型。所以当定义一指向结构体的指针 struct xx *sp时,又需要有个变量能指向不同的像这样的指针时就用指针的指针吧,如void **
2010-04-20 19:00:00
604
原创 windows下的第一个makefile程序
今天比较闲,研究了一下Makefile,这是自己第一次写Makefile,虽然一直听说其大名,但都是流于理论与书籍。今天决定自己实践一次,好,废话少说。1、先写一个hello world的main.c#include int main(){ printf("hello world/n"); getch();} 2、下载并安装win
2010-03-22 19:34:00
749
转载 加快程序运行速度的技巧
加快程序运行速度的技巧 通常影响程序运行速度的地方,都是在执行次数最多的地方。比如显示一张800*600的256色图形,如果在设置调色板时浪费了0.001秒,那么对整个程序不
2009-12-10 11:03:00
822
原创 C/C++拾遗
在使用c/c++时有许多细节和技巧需要注意的,但很多时候时间一长不用就忘掉了,故一点一滴记录下来,以作备忘!1、函数调用 函数调用的参数不改变参数内容的应在参数前加上const,如void function(const char * ServerName),防止误修改。 但函数参数是结构体或者对象时,传入的参数应为指针或者引用,如void function(st
2009-12-08 18:39:00
576
原创 游戏的那些事儿
不知不觉又到12月了。近期写代码少了很多,多了时间去看书学习和打游戏,这个过程想了很多也思考了很多,今天就说说近来我的所思和所想吧。1、从war3看寻路算法 这个是我昨天想到的。我们打dota的时候,在追杀一个红血的英雄的时候,应该一下一下地点追杀的路径到直线距离的时候再A。以前我总是A对方红血的英雄以致常常以追杀失败而告终,现在学乖了,知道如何去杀,命中率自然大大提高了。这里不是想说明
2009-12-07 19:43:00
935
原创 人工神经网络
人工神经网咯的类型有很多,以下对几个普遍的分类进行介绍:首先介绍一下神经网络的主要学习规则有1、HEBB学习规则2、离散感知器学习规则3、连续感知器学习规则4、最小均方学习规则5、相关学习规则6、胜者为王学习规则7、外星学习规则 一、感知器神经网络 最有代表性的是BP神经网络,因为实在太熟悉就不作介绍了! 二、自组织竞争神经网络
2009-06-09 10:37:00
1487
原创 遗传算法
一、基本遗传算法的流程如下:不断循环,直到寻找出一个解:1、检查每个染色体,看它解决问题的性能如何,并相应地为它分配一个适应性分数。2、从当前群体选出2个成员。选出的概率正比于染色体的适应性,适应性愈高,被选中的概率也愈大。常用的方法是赌轮选择法(roulette wheel selection)3、按照预先设定的杂交率(crossover rate)(一般取0.7),从每个选中染
2009-06-09 08:20:00
936
原创 软件低效的根源
在最高层次中,软件的效率取决于两个主要因素的效率:1、设计效率 这与程序的高层设计有关。解决这一层次的性能问题需要理解程序的大体构造。在相当大的范围内,这是与语言无关的。任何编码效率都无法掩盖低劣的设计2、编码效率 中、小型的实现问题属于这种情况。解决这一类性能问题通常做局部修改。例如,要把常量表达式放在循环的外面以防止多余的计算。 还可以把这个高层次划
2009-05-26 08:40:00
630
原创 c++风格的类型转换
标准c++提倡使用类型转换操作符类替换旧风格(如 int i=(int)100.1)的强制类型转换。其语法格式如下: 转换操作符(待转换对象) 其中转换操作符可以是以下几种: 1、动态类型转换dynamic_cast 2、静态类型转换static_cast 3、再解释类型转换reinterpret_cast 4、常类型转换con
2009-05-25 11:53:00
513
原创 c++标准库的组成
c++标准库实际包含一堆头文件(.h)、实现文件(.cpp)以及目标文件(.lib),其中包含的内容如下: 1、函数 2、常量 3、宏 4、类:公用类的定义(如:string) 5、对象:公用对象的定义(如:cout) 6、模板 不同的c++库完成对不同操作的封装,一般认为c++标准库由以下部分组成: 1、字符串 2、输入输
2009-05-25 11:42:00
736
原创 java中的clone机制
为什么要使用clone?在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在这种情况下常常使用clone,但解决上述问题方法很多,如先new一个类,然后把原始对象中的信息赋到新对象中,那为什么需要clone呢
2008-02-25 20:21:00
1127
原创 java中的“值传递”和“引用传递”
和大多数流行的编程语言一样,函数体的传入参数分为“值传递”和“引用传递”两种。(1)“值传递”传入的参数是java语言中定义的基本数据类型(如int,char,double等)(2)“引用传递”传入的参数在java则是对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。那么两者之间到底有何异同呢? “值传递”传入的参数在函数体内部变成了局部变量,这个局
2008-02-16 15:29:00
857
原创 java中的"=="与"equals"
以前学习java中一直没真正搞懂"=="与"equals"的区别,总以为"=="是判断内存地址是否相同;"equals"是判断值是否相同。其实不然。 在java语言中,判断两个对象引用变量是否相等,有两种比较方式(1)比较两个变量所引用的对象的内存地址是否相等,"=="就是比较内存地址,另外,Object类中定义的equals(Object o)方法,也是按内
2008-02-14 14:56:00
1370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人