wintree的专栏

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

服务器端开发的一些建议

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

2016-06-24 09:44:23

阅读数:9100

评论数:2

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

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

2015-12-08 20:22:22

阅读数:3548

评论数:0

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

协议序列化

2015-11-29 23:33:18

阅读数:6319

评论数: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

阅读数:8250

评论数:0

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

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

2015-07-24 23:52:43

阅读数:2300

评论数:0

无锁队列--基于linuxkfifo实现

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

2015-06-15 15:37:51

阅读数:3146

评论数:1

游戏公会工作总结

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

2015-05-13 20:01:01

阅读数:2920

评论数:0

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

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

2015-05-02 14:14:54

阅读数:3494

评论数:1

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

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

2015-02-27 11:29:44

阅读数:6593

评论数:0

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

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

2014-09-14 23:55:12

阅读数:9605

评论数:2

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

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

2014-04-21 11:55:11

阅读数:5240

评论数:2

工作的几个技术小点总结

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

2013-11-23 12:13:00

阅读数:2505

评论数:3

Linux 下C语言简单实现线程池

C语言简单实现线程池 0 前言 网上关于线程池的例子还是不少,简单明了的倒是比较少,看了网上的资料,打算借鉴网上的一些例子,自己实现以下。 线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元...

2012-06-16 16:30:17

阅读数:12758

评论数:10

分享一下工作以来我看过计算机书籍

由于自工作依赖一直专注于linux 下的c/c++编程工作,所以,我的书籍也大的都是这方 这边书尽管很经典,但是我的能力实在有限,只把数据结构的那点看了一下,其他的 看的很吃力,所以放下了,没怎么,希望将来我能力上来了,再看吧。 这是一本好书。让你知道c++到底给你做了那些事情,编...

2012-06-03 13:10:00

阅读数:14704

评论数:83

ngnix 源代码学习(1)

一直想学习一个优秀的服务器源代码,之前一直纠结在学apache还是ngnix,后来比较一下,还是学习ngnix比较好,因为我目前致力于linux下的服务端软件开发。 尤其是想学一下web服务器的开发。   第一,代码量比较少,貌似就十万行,但是apach几十万行,会很累看的。 第二,技术都...

2012-04-04 23:40:28

阅读数:2711

评论数:1

多线程实现消费者生产者的例子

今天看书,看了一个例子,于是自己手动的自己敲了一下。。。 但是,期望的结果和理论结果是不一样的,求解答啊。。。 上源代ma #include "apue.h" #include /* basic system data types */ #inclu...

2012-02-04 21:30:53

阅读数:2124

评论数:2

dynamic_cast, reinterpret_cast, static_cast and const_cast 学习

dynamic_cast, reinterpret_cast, static_cast and const_cast 在C语言中,经常会遇到类型转换的一些东西。类型转换分为:显示类型转换和隐式类型转换。 隐式类型转换: 所谓隐式类型转换就是语言本身,使用编译器,自动就给我们转成了我们需要的...

2012-01-31 10:40:51

阅读数:1442

评论数:0

POSIX---linux多线程编程基础入门。

过年不回家了,一直在工作的地方呆着,就腾出了很多时间来学习了。前几天腾讯给打电话,问了linux下的一些知识,但是答得很不好。自我分析了一下,总结如下: 1.知识学习一遍是远远不够的。还是要多学习,多揣摩,多思考。 2.知识是要经常回头复习的。 3.程序的工作是要多自己写代码实践,多思考。写...

2012-01-21 00:12:33

阅读数:4801

评论数:2

带有头结点的简单链表实现

#ifndef LinkedList_H #define LinkedList_H #include "dsexceptions.h" #include // For NULL // List clas...

2012-01-03 14:54:19

阅读数:1535

评论数:0

简单链表实现

今天元旦,不想工作。只想写一写自己想学习的东西。。今天就写了个链表的单向链表。 //头文件chain.h #ifndef _chain_ #define _chain_ #include #include using namespace std; template class Chai...

2012-01-01 16:07:25

阅读数:1311

评论数:0

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