wintree的专栏

专注于Linux系统编程,网络编程,高性能服务器技术,c/c++技术学习

服务器端开发的一些建议

摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家 一 专业基础 1.1 网络 1.1.1 理解TCP/IP协议网络传输模...

2016-06-24 09:44:23

阅读数:9170

评论数:2

c++侵入式对象计数设计技术

侵入式对象计数的设计原理相对非侵入式的来说: 具有以下优点: 1、一个资源对象无论被多少个侵入式智能指针包含,从始至终只有一个引用计数变量,不需要在每一个使用智能指针对象的地方都new一个计数对象,这样子效率比较高,使用内存也比较少,也比较安全;2、因为引用计数存储在对象本身,所以在函数调用的...

2015-12-08 20:22:22

阅读数:3568

评论数:0

支持vector,map,list<map>序列化,反序列化实现

协议序列化

2015-11-29 23:33:18

阅读数:6627

评论数:3

C语言实现分布式自增有序的唯一ID生成算法-snowflake算法

前41bits是以微秒为单位的timestamp。 接着10bits是事先配置好的机器ID。 最后12bits是累加计数器。 macheine id(10bits)标明最多只能有1024台机器同时产生ID,sequence number(12bits)也标明1台机器1ms中最多产生4096个...

2015-11-07 13:28:14

阅读数:8465

评论数:0

原子操作的一段代码学到的知识

本实例是我在学习原子操作看到一段很有趣的程序,包含的知识很多。 首先上程序: // test_atomic.cpp : 定义控制台应用程序的入口点。 // #define _GNU_SOURCE #include #include #include #include #include...

2015-11-07 10:58:31

阅读数:2778

评论数:1

我的c++服务器记录----非阻塞下的socket读取操作

服务器端的基本的一个操作就是从socket的fd上进行数据读取,也就是我们经常用到的read函数。 欢迎关注我的服务器代码:http://code.taobao.org/p/fastServer/src/今天主要是关注的正确的进行read操作 首相,我的socket是已经设置了非阻塞属性。re...

2015-07-24 23:52:43

阅读数:2348

评论数:0

无锁队列--基于linuxkfifo实现

一直想写个无锁的队列,来提高项目后台的效率。 偶然看到linux内核的kfifo.h 实现原理。于是自己仿照了这个实现,目前linux应该是可以对外提供接口了。 #ifndef _NO_LOCK_QUEUE_H_ #define _NO_LOCK_QUEUE_H_ #include ...

2015-06-15 15:37:51

阅读数:3243

评论数:1

游戏公会工作总结

想写这篇文章已经脱了很久了。本文主要写一写我在游戏公会组所做事情和成长吧。 在这里,首先要感谢我的前老大,技术组leader,郭文瑞,具有十几年的技术经历。技术广度和深度都是公司首屈一指的。还有他对技术的敏感程度是非常值得敬佩的。项目成立之时,感谢他对我的信任和帮助,才让我能够基本独立的...

2015-05-13 20:01:01

阅读数:2954

评论数:0

fastdfs学习之 选主流程

概述: (1)每个tracker服务在启动时会调用tracker_relationship_init函数启动一个线程relationship_thread_entrance。该线程会每隔几秒进行各个tracker的关系确认,若leader发生了变动,或宕机之类,会重新选出leader。 (2)...

2015-05-08 09:23:44

阅读数:1446

评论数:0

redis源码解析----epoll的使用

平时做项目,涉及到网络层的都是epoll,前几年发现redis的epoll实现起来非常的精简,好用。因为提供的接口简单,爱并实现的很高效。于是,我就提取出来,直接使用。 今天又打开该文件详细的看看他的实现细节。 首先简单介绍epoll,它是linux内核下的一个高效的处理大批量的文件操作符的一...

2015-05-02 14:14:54

阅读数:3739

评论数:1

删除双向链表的一个指定节点

双向链表的简单操作,供初学者学习

2015-02-27 11:29:44

阅读数:6872

评论数:0

memcached源码阅读----使用libevent和多线程模型

本篇文章主要是我今天阅读memcached源码关于进程启动,在网络这块做了哪些事情。 一、iblievent的使用     首先我们知道,memcached是使用了iblievet作为网络框架的,而iblievet又是单线程模型的基于linux下epoll事件的异步模型。因此,其基本的思想就是...

2014-09-14 23:55:12

阅读数:9684

评论数:2

redis源码解读之内存管理————zmalloc文件

本文章主要记录本人在看redis源码的一些理解和想法。因为功力有限,肯定会出现问题,所以,希望高手给出指正。 第一篇就是内存相关的介绍。因为我喜欢先看一些组件的东西,再看整体的流程。先上一下代码吧 头文件 //主要提供内存分配和释放的基础功能 void *zmalloc(size_t siz...

2014-04-21 11:55:11

阅读数:5280

评论数:2

工作的几个技术小点总结

这篇文章,主要是总结一下我最近工作中遇到的一些之前没有接触过的东西 1.mysql数据引擎 mysql 支持几种引擎,我们常见到的引擎ISAM 和INNODB, 其他详细介绍可以参看其他文章,很多介绍比如 http://www.cnblogs.com/xulb597/arc...

2013-11-23 12:13:00

阅读数:2515

评论数:3

游戏架构之前端接入层

在前边几篇文章已经给大家讲过,我们游戏通过进程间异步通信的方式来实现瓶颈的最大程度的减小。 前端接入层主要的做什么呢? 主要是数据包的有效性验证和维持与玩家的长连接。 如何做有效性的验证,我们使用过和前端具体的协议定制。然后通过我们具体的协议包头+包体的来计算。 如果我们的...

2013-08-30 00:17:19

阅读数:3658

评论数:2

mmog游戏开发之业务篇

这周不是很忙,因为我们的游戏开发了近一年,由于公司的业务调整,在游戏开第二服的时候,老板果断的把项目停到了。 感觉超级的不爽啊。因为这个游戏项目像我的孩子一样和我一样成长,里边的大概的业务逻辑都是偶实现的,比如 基础系统里的,任务系统,背包系统,公会系统,相关副本系统,商城系统,人物属性相关,运镖...

2013-08-29 23:41:02

阅读数:2704

评论数:0

游戏登陆流程

今天主要讲游戏的登陆流程, 由于我们的后台架构是前端接入层+后端业务进程的架构模式,因此,任何网络连接请求的数据,都要经过前端接入。 首先要说明,目前大多数游戏都是 账号+角色的模式。ok 登陆两种模式1,已在该服创建过账号,创建过角色的玩家 2.在该服没有创建过,账号数据库是没有数据 ...

2013-08-15 11:08:18

阅读数:2526

评论数:1

游戏后台之内存管理篇

服务端程序对于内存的管理上是重中之中,如何管理好程序的内存是保证程序稳定的最重要因素。 因此,我们是如何做的呢。 1.我们知道,当有一个新玩家进入游戏,我们需要分配一段内存给这个玩家,当这个玩家下线了,不玩了,我们就要对这段内存 进行清理。因此,如何有效的管理这段内存,如何能...

2013-07-27 01:29:35

阅读数:2569

评论数:1

游戏系统开发设计分享

我所搭建的总体架构非常简单就是 前端接入进程 +后端业务逻辑处理进程+数据库缓存进程+其他协作进程 一、组件基本介绍 1.通信组件 所有进程使用的是单线程,没有使用其他线程。进程间通信使用我们的一个自主开发的通信组件。 2.数据协议组件 我们也是自主开发的一个以xml表现形式,通过工具生成...

2013-06-09 00:59:23

阅读数:2673

评论数:3

游戏地图掩码相关(msk)

在游戏的世界里,玩家在地图上的某点,是否能够走动,是否遇到障碍,是否是走到了阴影处,是否水层等等先关信息都要我们前后端知道。 那么服务器是如何进行实现的呢。下面主要给大家讲讲。      首先,我们知道图片是以像素为主要为单位进行计量,但是我们后端又不能使用这个东西,在二维的世界观里,我们是以...

2013-05-30 00:49:29

阅读数:3130

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭