今天是3月最后一天,理应写点东西,博客也不像以前那样更新了,原因很简单,没时间。今天下午把之前写的代码,从C语言改为了C++,都怪自己从开始做的时候没有面向对象的思想,今天改的时候,刚开始真是无从下手,不知道咋弄,其实自己服务器写的代码也不是很多,也就是用个epoll函数处理并发,然后是接收发送数据什么的,我把C语言写的函数看了几遍,又从新梳理了下流程。
梳理的流程如下:从main函数开始
(1)建立socket
(2)设置服务器地址,清除端口占用
(3)绑定socket,listen socket
(4)设置每个进程允许打开的最大文件数
(5)Epoll方法,把socket加入epoll集合,在while(1)死循环里,用handmessage处理数据
大致流程就是如此,理清了思路,就开始设计类了.
首先设计了一个CNgodServer类,里面设计了4个成员函数:
(1)InitServer(),用来建立socket、设置服务器地址,清除端口占用和绑定socket,listen socket。
(2)SetProcessMax(),用来设置每个进程允许打开的最大文件数
(3)EpollMethod(),用来把socket加入epoll集合,在这个里面调用了类HandMessage()
(4)Setnoblocking()用来设置句柄为非阻塞方式,用于在成员函数InitServer()和EpollMethod()中调用。
其次设计了类CHandMessage,里面设计了几个成员函数
(1)InitHandMessage(),用来处理数据的收发,里面用到recv()和send()等函数;
(2)还有setup(),play(),release()等函数。
然后再main()函数里,创建一个CNgodServer类的对象,然后调用方法就是了。
今天本打算好好写篇博客,结果,下午改成C++后,还有些BUG,我一直在调试,本来代码整理了一个阶段了,结果,我要加const成员变量,使用构造函数初始化列表来初始化, 结果也没弄好,后来开始调试bug,因为一个小小的失误,调了好久,终于弄回了原来的状态。
更悲剧的是linux环境的不熟悉,老是出来~,我删除的时候一不小心把CNgodServer.cpp文件删除了,找半天也找不回来,我这个后悔啊,想死的心都有了,弄了半天没弄好后,只好从新写,又弄了好久终于写好了,这次多了个心眼,做了个备份。把之前写好的都做了备份。
3月份是结束了,4月份估计是最忙的时候,blog写的估计更少了,4月份毕业论文要弄,要的验机,交初稿,还得实习。哎!4月对于我来说注定是最忙的。
不管怎么样,3月份结束了,哎!不写了,我也会去睡觉吧!