- 博客(5)
- 收藏
- 关注
原创 关于epoll的一些心得----关于监听和数据处理(2)
模型见1,最近做压力测试发现这种方式再极限情况下会出现一个问题。2台服务器间通信 A处理完EPOLLIN 抛出EPOLLOUT 但是当对端B的接受缓存满的时候A的写缓存也满的时候EPOLLOUT不会被触发 此时A的socket处于等待状态直到B端接受完数据A 能够清空发送缓存才会触发EPOLLOUT, 但是如果此时B端也处于这种情况,即B段刚EPOLLIN后抛出 EPOLLOUT想往A发送数
2015-04-28 10:21:33 537
原创 关于protobuff的一些理解
近期公司项目使用到了protobuff。虽然之前对protobuff就一直有耳闻,但是对传闻其高效便捷并不是很理解,直到此项目才对protobuff有了一些较为深刻的认识。先说下protobuff的用法 以c++为示例。 关于如何下载 编译就不多说了。先生成xx.proto文件, 里面 按照格式写入你的数据结构 例如 message Data { required st
2012-11-28 20:16:20 1837
原创 Linux下的一些设置
1.在Shell下将信息输入到文件用 > 符号 如 ps ax|grep GameLogic > a.txt 追加则用 >> 如ps ax|grep >> a.txt 2.egrep用于多个过滤 如 ps ax|egrep 'GameLogic|WorldServer'3.Linux系统有7个启动等级 0-6 查看当前的服务信息如下 chkconfig --list |
2012-10-17 10:35:09 413
原创 关于网游服务器逻辑多线程处理的一些经验
<br /> 众所周知,现在比较流行的网游服务端结构是逻辑单线程, 但是总会有一些其他原因促使你的架构不一定会按照最完美的情况来进行。下面就我上一个多线程逻辑的项目来说下一些要注意的事情和经验。<br /> 按场景分线程应该是比较合理的一个方法,可以这么理解:N个场景运行在同一个线程之内。而人物又是运行在场景之内的,那么问题就出来了,当A线程操作B线程玩家的指针的时候,而B玩家突然下线 ,导致这个指针被释放,则导致程序崩溃。最简单的方法是在所有需要在所有有可能操作他人指针的时候进行加锁处
2011-03-07 15:00:00 1678 1
原创 关于epoll的一些心得----关于监听和数据处理
<br /> 最近开始接触Linux,那么必然的也开始接触epoll.<br /> epoll其实很简单,就三个函数epoll_create, epoll_ctl和epoll_wait。当有网络事件触发的时候由内核主动通知应用程序,它只会对“活跃”的socket进行操作。- -!都是废话,下面进入正题(以ET来说)。<br /> 下面是主要的处理线程(有些是伪代码 大概意思就是这样)。<br /> int fd_count;<br /> SOCKET sock;<
2011-03-05 21:56:00 939
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人