上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 66 下一页
摘要: 玩家游戏状态变化enum GameState//玩家游戏状态{ eGameState_OnlyConnect = 0, ///m_szUserPwd, MAX_NAME_LEN)) { m_eGameState = eGameState_Login;//玩家状态... 阅读全文
posted @ 2014-11-23 15:11 zzyoucan 阅读(332) 评论(0) 推荐(0) 编辑
摘要: GS网络连接事件//网络事件//这个事件是在libevent里面的收到的事件就是在那个listen里面,就是客户端打开,服务器收到通知link_stat stat = (link_stat)rPkt.size;if (stat == link_stat::link_connected){ Ga... 阅读全文
posted @ 2014-11-22 21:34 zzyoucan 阅读(318) 评论(0) 推荐(0) 编辑
摘要: void GameServer::ProcessThread(){ try {//在ui线程里面搞个大try不是说try效率不好吗,难道只是为了出现错误发现在GS线程里面出现的吗 ProcessThreadTry(); } catch (...) { ... 阅读全文
posted @ 2014-11-21 01:50 zzyoucan 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 开启GameServer模式init函数,现在看看这个大函数干什么的//这个init也是GameServerUI里面调的,这个线程其实就做了一些初始化的工作,其实这里面没有什么主不主线程,都是在一个进程里面的void __stdcall GameServer::init(){ ///设置最大连... 阅读全文
posted @ 2014-11-18 23:57 zzyoucan 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 关于libevent的几个问题1.他到底是如何保证这个套接字有效的主线程去断开关闭套接字,主线程去调用buffwrite,在子线程收到客户端断开时,主线程延迟1分钟释放,这样保证子线程操作完该socket的操作但其实我没有真正理解这样搞怎么就能保证安全性2.BUFFEREVENT_WRITE到底还是... 阅读全文
posted @ 2014-11-17 16:41 zzyoucan 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 多线程模式其实这个早看过了,在复习一下主线程创建四个子线程,一个线程一个event_base,专门派发这个有个监听线程,在监听线程收到连接之后轮询选择一个线程就交给他处理了,其实就这么简单在看看包走向客户端发过来的加入以登录为例(不知客户端是不是走这一套)1.先打包成protocol形式2.在liv... 阅读全文
posted @ 2014-11-16 19:14 zzyoucan 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 关于连接状态改变的情况客户端下线的两种方式1.客户端主动下线子线程会收到socket状态改变的消息/* 连接状态改变 */static void conn_eventcb(struct bufferevent *bev, short events, void *user_data){ auto... 阅读全文
posted @ 2014-11-16 17:10 zzyoucan 阅读(866) 评论(0) 推荐(0) 编辑
摘要: std::vector m_allChannels;容器,以及如何根据channelid的意义这个容器保存了所有客户端连接的channelChannel2* LibEvtServer::CreateChannel(bufferevent* be){ auto c2 = new Channel2... 阅读全文
posted @ 2014-11-16 12:37 zzyoucan 阅读(863) 评论(1) 推荐(0) 编辑
摘要: 不同包客户端的处理方法对于那种事件类型的连接上了,连接失败了,断开连接了bool NGP::OnConnected(){ std::lock_guard lock(m_PktMutex);//加锁是因为runonce应该是另一个线程 m_queFunctions.push(std::bi... 阅读全文
posted @ 2014-11-15 01:34 zzyoucan 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 服务器发包到客户端以登录包为例SendCmd(s2c_login, &ret, sizeof(LoginEnum));end_stat BaseChannel::SendCmd(int nCmd, void* pData, int nLen){ Protocol Ptl; Ptl.cmd... 阅读全文
posted @ 2014-11-14 22:59 zzyoucan 阅读(351) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 66 下一页