09 2014 档案

摘要:我始终相信一句话:只有自己足够强大,才不会被别人践踏。 阅读全文
posted @ 2014-09-29 21:16 zzyoucan 阅读(106) 评论(0) 推荐(0) 编辑
摘要://#define ALLOC_CONSOLE#ifdef ALLOC_CONSOLE AllocConsole(); // 开辟控制台 释放:FreeConsole(); SetConsoleTitle(L"Debug Output"); ... 阅读全文
posted @ 2014-09-27 09:13 zzyoucan 阅读(222) 评论(0) 推荐(0) 编辑
摘要:客户端打开服务器是怎么知道连接的1.客户端调用NGP的接口TcpLinkEx::TcpLinkEx(){ auto ser = GetPlug(LibEvtServer); if(!ser) { ser = NEW(LibEvtServer); SetP... 阅读全文
posted @ 2014-09-27 00:13 zzyoucan 阅读(876) 评论(0) 推荐(0) 编辑
摘要:服务器共享内存以及客户端打开服务器获得通知过程打开GS就会进行共享内存的初始化,过程很复杂,看了很多次,今天看的时候终于了解了大概了bool DataLayer::init(){ int pid = GetCurrentProcessId(); auto path = Plug::Get... 阅读全文
posted @ 2014-09-26 21:42 zzyoucan 阅读(1237) 评论(0) 推荐(0) 编辑
摘要:C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不能简单的通过检... 阅读全文
posted @ 2014-09-25 22:32 zzyoucan 阅读(6062) 评论(0) 推荐(0) 编辑
摘要:asynDBCenter加入数据库心跳,其实是没有找到更好的方法,看看和以前有什么不同mongo数据库重练,暂时没有找到好办法,只能这样定时访问bool asynDBCenter::init(bool isInitRobot){ if(isInitRobot) m_dbcente... 阅读全文
posted @ 2014-09-25 10:14 zzyoucan 阅读(202) 评论(0) 推荐(0) 编辑
摘要:asynDBCenterasynDBCenter是GS和DBCenter之间的模块,有了他GS访问数据库就是异步的了,以前是同步的,加入某个操作很耗时那么GS就在那等待这个返回值。1.对于std::queue哪些情况要加锁,哪些不加push、pop操作100%必须加锁,front和back操作是只读... 阅读全文
posted @ 2014-09-24 22:56 zzyoucan 阅读(275) 评论(0) 推荐(0) 编辑
摘要:终于改完了也测了,写了一个星期,哥快跪了,累爆了 阅读全文
posted @ 2014-09-24 01:52 zzyoucan 阅读(114) 评论(0) 推荐(0) 编辑
摘要:mongodb的DBObject支持保存多维数组,在增加元素时使用"$push"操作符,在删除元素时使用"$pull".但是在做更新时问题就来了,mongodb首先支持使用"$"来定位数组中的某个元素,例如:> t.find() { "_id" : ObjectId("4b97e62bf1d8c7... 阅读全文
posted @ 2014-09-23 20:54 zzyoucan 阅读(1206) 评论(0) 推荐(0) 编辑
摘要:#include #include using namespace std;int fun(int a){ std::cout * f){ auto fun = *f; fun(1); return 1;}int main(){ std::function fu... 阅读全文
posted @ 2014-09-20 01:18 zzyoucan 阅读(150) 评论(0) 推荐(0) 编辑
摘要:现在的状态:书读的少,没有思想,社会阅历少,抗击打能力差,性子太急,太不成熟希望成熟一点,这些都是成功的大忌,否则你得不到机会,或者机会在眼前你不知道,不知什么东西是好的,更不知如何做人,许多东西都决定了我以后能走多远 阅读全文
posted @ 2014-09-19 23:09 zzyoucan 阅读(145) 评论(0) 推荐(0) 编辑
摘要:这个协议不知我在上面耗费了多长时间,也有人问过我咋回事,这个protocol不长,但对于我来说理解起来很费劲,今天回来看看忽然看懂了(80%),只能说不知看了多少遍其实这些东西应该在来的一个月这样子都要会的,一直拖到现在,其实那时时真心看不懂#ifndef Protocol_Base_H#defin... 阅读全文
posted @ 2014-09-18 00:12 zzyoucan 阅读(322) 评论(0) 推荐(0) 编辑
摘要:我刚才在想两个线程同时访问一个函数有没有问题看到这个我就放心了其实你可以这样想,函数本身只是代码,代码是只读的,无论多少个线程同时调都无所谓(因为只读嘛)。但是函数里面总要用到数据,如果数据属于线程(比如函数参数、局部变量,存在栈上,每个线程都有自己的栈),那么同时调还是没关系,因为用的本线程的数据... 阅读全文
posted @ 2014-09-16 14:12 zzyoucan 阅读(409) 评论(0) 推荐(0) 编辑
摘要:今天我在想类里面类类型是什么时候初始化的如:class A{ A(B& bb) { b = bb; } public: B b;};class B{ B();};假如A a;定义一个对象会为对象的数据成员分配空间,然后调用构造函数进行初始化从... 阅读全文
posted @ 2014-09-15 23:54 zzyoucan 阅读(159) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #pragma warning (disable: 4244) //解决boost 中binary序列化:“std::streamsize”转换到“size_t”usi... 阅读全文
posted @ 2014-09-15 00:14 zzyoucan 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include using namespace std;//stringstream只是一个中转的作用,因为write_json还是read_json操作的是stringstream.void packetage(char**... 阅读全文
posted @ 2014-09-14 21:43 zzyoucan 阅读(1592) 评论(0) 推荐(0) 编辑
摘要:多线程版Libevent//保存线程的结构体struct LibeventThread{ LibEvtServer* that; //用作传参 std::shared_ptr spThread; // 线程 struc... 阅读全文
posted @ 2014-09-14 00:50 zzyoucan 阅读(10306) 评论(2) 推荐(1) 编辑
摘要:#include using namespace std;int main(){ int *p = new int;//int类型的首地址 int *p2 = new int[10];//指向数组的首地址 //p3是指向int*数组的首地址,因为元素是int*了,所以这个需要时in... 阅读全文
posted @ 2014-09-12 22:23 zzyoucan 阅读(163) 评论(0) 推荐(0) 编辑
摘要:#include #include using namespace std;int main(){ cout << sizeof(long) << endl;//4 cout << sizeof(long long) << endl;//8 cout << sizeof(__int... 阅读全文
posted @ 2014-09-10 22:41 zzyoucan 阅读(303) 评论(0) 推荐(0) 编辑
摘要:几个问题:1.libevent到底用的是select还是iocp,然后是如何突破64限制的typedef struct fd_set { u_int fd_count; /* how many are SET? */ SOCKET fd_... 阅读全文
posted @ 2014-09-05 13:51 zzyoucan 阅读(1352) 评论(2) 推荐(0) 编辑
摘要:TCP连接的三次握手和关闭的四次握手这个算是很久的问题了,最近比较闲,研究了一下,以前以为每次发送数据都需要三次握手现在发现只有在建立连接的时候需要握手这个三次握手在连接的时候,四次握手在关闭的时候,分析一下,逻辑很清晰的具体看看这个:http://blog.csdn.net/xiaoweige20... 阅读全文
posted @ 2014-09-04 14:33 zzyoucan 阅读(154) 评论(0) 推荐(0) 编辑
摘要:只要接触过c/c++网路编程人都可能会知道select io 模式,网络书籍都说 fd_set {int num; SOCKET arr[64]} 有所限制,因为数组的长度只有64,那么超过64你就不能放,要么你就是用多线程分别实用select.。一些书籍通过改定义宏 使数组的长度变长,但也不实用,... 阅读全文
posted @ 2014-09-04 14:29 zzyoucan 阅读(171) 评论(0) 推荐(0) 编辑
摘要:从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,... 阅读全文
posted @ 2014-09-04 10:55 zzyoucan 阅读(480) 评论(0) 推荐(0) 编辑
摘要:单线程libevent模式项目里面是多线程版的,我先理解下单线程的。//client1.调用NGP::init()bool NGP::init(NGPcontext context){ _context = context; //_TcpLink = NEWSP(TcpLink); ... 阅读全文
posted @ 2014-09-04 00:29 zzyoucan 阅读(985) 评论(0) 推荐(0) 编辑
摘要:在很多比较各种网络模型的文章中,但凡提到select模型时,都会说select受限于轮询的套接字数量,这个数量也就是系统头文件中定义的FD_SETSIZE值(例如64)。但事实上这个算不上真的限制。C语言的偏方:在C语言的世界里存在一个关于结构体的偏门技巧,例如: typedef struct _s... 阅读全文
posted @ 2014-09-04 00:13 zzyoucan 阅读(1449) 评论(0) 推荐(0) 编辑
摘要:如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五... 阅读全文
posted @ 2014-09-03 17:36 zzyoucan 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:下载最新的libevent,目前是libevent-2.0.21-stable.tar.gz修改“D:\libevent-2.0.21-stable\event_iocp.c”、“D:\libevent-2.0.21-stable \evthread_win32.c”、“D:\libevent-2.... 阅读全文
posted @ 2014-09-01 22:34 zzyoucan 阅读(344) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示