cloud

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  29 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks

常用链接

留言簿(5)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

这几天服务器突发一个bug, 登陆的人员会发生串号, 就是A玩家登陆后, 得到B玩家的角色.
  这个bug触发的主要原因是网络底层在得到一个客户端的连接请求时, 会分配一个id,而这个id是用栈在保存的,当有新的连接, id就出栈, 当连接断开时,id入栈, 这样就导致了id被重复利用的次数非常高,尤其是某些id. 当这些id生成后,会进入登陆队列,等待登陆结果, 如果这个时候登陆认证模块的速度很慢, 或者说这个时候客户端退出了, 这个时候的id就是一个无效id了, 可是这个只有网络底层知道, 这就造成引用层编写的难度.  所以最好的解决方案就是每次的连接id都是不一样的,类似操作系统的HANDLE
posted on 2007-06-18 17:37 cloud 阅读(269) 评论(0)  编辑 收藏 引用 所属分类: 游戏

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理