自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nosix的博客

本博客不再更新, 查看最新内容修正且精心排版的博客请转至 http://hulinhong.com 喔.

  • 博客(34)
  • 收藏
  • 关注

原创 状态同步帧同步教程附源码

一个实时游戏服务器例子和一个游戏前端例子视频演示 : http://www.hulinhong.com/ 源码 : https://github.com/no5ix/realtime-server

2018-07-01 01:26:22 4929 2

原创 IPC进程间通信

IPC进程间通信1.匿名管道( pipe ): 匿名管道是一种半双工的通信方式,通常是在父子进程间使用。2.命名管道 (named pipe) : 命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3.信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此

2017-08-30 22:41:35 379

原创 Linux常用命令笔记整理之tcpdump

强大的抓包工具, 博大精深内容太多, 所以这篇博客整理得只说常用, 具体的参考tcpdump用户手册, tcpdump需要root权限, 所以记得加上sudo常用参数-nn选项: 意思是说当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称。比如,大家都知道80是http端口,tcpdump就不会将它显示成http了-c选项: 是Count的含义,这设

2017-08-27 08:40:12 571

原创 (链表进阶)谈一谈各类算法和数据结构的c++实现以及相关操作的复杂度(三)

只谈一下单链表, 链表实在是太重要, 是前面两篇说算法博客的基础, 了解了其应用和衍生, 再去了解其本身就有动力了 这是一篇偏向单链表进阶的博客, 并不会讲单链表的建立/增加/删除等等, 而且这篇博客大多数只说思想不写代码(因为其实蛮简单的..)存储结构typedef struct Node{ DataType data; struct Node *next;}Nod

2017-08-23 22:30:58 484

原创 socket可读可写条件与非阻塞connect/accept浅析

socket可读的条件: socket的接收缓冲区中的数据字节大于等于该socket的接收缓冲区低水位标记的当前大小。对这样的socket的读操作将不阻塞并返回一个大于0的值(也就是返回准备好读入的数据)。我们可以用SO_RCVLOWATsocket选项来设置该socket的低水位标记。对于TCP和UDP .socket而言,其缺省值为1.该连接的读这一半关闭(也就是接收了FIN的TCP连接)。

2017-08-22 19:43:57 1768

原创 kbe的UE4的demo大体解读

写到一半发现论坛的热门帖子里官方写了个u3d的demo源码解析, 内容几乎重复, u3d跟ue4的demo框架流程几乎都是差不多的, 直接给出官方帖子的链接好了, 尴尬: http://bbs.kbengine.org/forum.php?mod=viewthread&tid=166

2017-08-14 00:53:24 1150

原创 kbe之1分钟完成安装

官方是有自动化的安装py脚本的, 不过还是有很多小坑的. 不过其实脚本主要也就是只做两件事, 其他都是可选的: 配置环境变量 安装mysql 安装步骤 安装kbe之前请提前在mysql里建一个数据库(比如建一个数据库kbe_database)和一个拥有select,insert,update,delete,create,drop权限的用户(比如这个用户是kbe_

2017-08-12 04:16:33 1935

原创 kbe之ubuntu下的编译

> 感觉之前的博客已经整理了大多数之前的关于基础的私人笔记, 现在应该可以讨论一下实操的东西了.先来一发之前的kbe在ubuntu下的编译笔记吧, 因为官方对于ubuntu下的kbe编译文档是有问题的.## **编译步骤** 1. 安装openssl : sudo apt-get install libssl-dev 2. 安装mysql : 1. sudo apt-get in

2017-08-11 23:52:01 413

原创 5分钟学会git

我之前有一份私人git笔记老长老长了, 今天得空, 把它浓缩成5分钟版本. 感觉纯基础性的东西整理成博客差也差不多了, 还有很多凌乱的工作笔记慢慢在一点一点整理放上来吧, 估计下面几篇博客就开始游戏服务器的开发心得之类的了. 本篇博客因为要5分钟撸完git, 所以语言尽量精简, 只说新人必须知道的, 如果要git进阶的, 后面再另写博客说明, 不该说的废话就不说了安装

2017-08-10 21:33:50 483

原创 MySQL必须得清楚的

引擎 MySQL是有多个引擎的, 不同的场景情况用不同的引擎以提升性能和灵活性. 三大最常用的引擎 : InnoDB : 可靠的事务处理引擎 ,不支持全文搜索MyISAM : 支持全文搜索, 不支持事务处理MEMORY : 功能等同于MyISAM, 但数据存储在内存而不是磁盘, 所以速度非常快, 特别适用于临时表(temporary table)索引 索引是用来改善搜索性能的

2017-08-09 22:27:43 491

原创 MySQL的这些显而易见的坑你踩过了没

## **distinct关键字**> distinct是应用于所有列的, 而不是某一个列```mysql> select * from test_table;+------+------+| one | two |+------+------+| 56 | 12 || 52 | 10 || 56 | 12 || 56 | 13 |+--

2017-08-08 01:39:46 356

原创 linux一些不要想当然的事(一)之目录权限

目录的可读/可写/可执行权限 不要把目录的这几个权限和档案的混淆了, 不要想当然的以为是差不多的, 差很多!目录可读r 目录可读权限 : 只能获得文件列表 特别注意:如果一个目录为非空, 却没有r权限, 即使你有wx的权限, 你用rm -r也是删不掉的, 因为没有r权限拿不到这个目录的文件列表, rm -r 自然也就不晓得要删除什么东西了.只有求助root了 b@b-Vir

2017-08-07 18:22:55 1404

原创 linux编程须知(阅读开源服务器源码基础)

当阅读一些开源服务器源码的时候, 如果不知道以下知识, 就会有知识盲点, 导致不知所云. 这篇博客会讲述一些相关的编程知识点, 把之前的笔记总结一下. 还是那句老话, 带着问题阅读是最容易让人类迅速进入状态的.进程的内存布局是什么样的?线程的同步机制有哪些?互斥量条件变量自旋锁读写锁如何避免死锁顺序加锁(例如,线程2和线程3只有在获取了锁A之后才能尝试获取锁C(译者注:获取

2017-08-06 22:29:03 597

原创 (二叉树)谈一谈各类算法和数据结构的c++实现以及相关操作的复杂度(二)

接着上一篇, 上一篇主要说了各种排序算法, 但对几个常用的数据结构还未提及,所以这一篇主要讲二叉树, 二叉树已经包括很多链表的知识了。二叉树这里不举太多数字方面的东西, 我们直接看图, 直观感性的认识满二叉树和完全二叉树: 有一点性质需要牢记:具有n个结点的完全二叉树的最大高度为log2n+1二叉树的二叉链式存储方案的代码表示:typedef struct BinaryTreeNode{

2017-08-05 01:18:27 693

原创 (排序算法)谈一谈各类算法和数据结构的c++实现以及相关操作的复杂度(一)

因为之前的笔记和书籍相关知识都是零零散散的, 没有一个汇总, 所以写了这篇博客。有些算法很简单,复杂度一眼都能看得出来, 几乎不需要记忆 , 但是有些算法或者数据结构的操作的复杂度就不是一眼可以看得出来, 推导也是很费时间的, 所谓常识就是应该熟记于心且被认可的知识。必须掌握的知识常用算法的复杂度冒泡排序 想象就是很多泡泡,最大的泡泡每次浮到那个数组后面void bubble_sort(in

2017-08-04 20:31:02 449

原创 C++ 易混淆点(二)

位操作运算符的问题二进制的100 的第0位是 0 1(第二位) 0(第一位) 0(第0位), 所以把一个数的第三位进行清零、置位、取反的操作如下:#include <stdio.h>#define Bit3 (0X01<<3)/*对一个数的第三位进行清零、置位、取反*/int main(){ int a=15 ; // 0000 1111 printf("原大

2017-08-03 22:57:16 316

原创 kbe服务端笔记

## **main**看起来似乎所有的组件都有一个这样的宏(KBENGINE_MAIN)来包裹main函数```intKBENGINE_MAIN(intargc, char* argv[]){ ENGINE_COMPONENT_INFO&info = g_kbeSrvConfig.getXXX(); returnkbeMainT<XXX>(argc, argv, YYY, info.exter

2017-08-03 21:04:53 1086

原创 http笔记整理之报文

看了书和各种网上资料, 学东西嘛, 要做总结, 这些老笔记整理一下, 供以后方便查阅也加强印象和理解.报文的组成起始行(start line)首部(header)主体(body)可细分为 : 方法 :如GET, HEAD, POST 关于HTTP请求GET和POST的区别 : 1.提交方式的区别: GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头<request-

2017-08-02 19:59:44 332

原创 一个简单的游戏服务器框架demo(源码已经放在GitHub)

GitHub地址框架简介一个简单的游戏服务器框架demo框架概要采用C++开发,依赖 : boost库MySQL数据库google-glog日志记录框架主要处理游戏客户端和游戏数据库的数据交换。 通信采用socket发送协议包的方式,服务器根据协议包命令码去做相应的逻辑处理,并将处理结果 返回给游戏客户端,即完成了前后端的数据交换。框架处理流程:客户端连接→服务器分配线程池中的线程处理→

2017-08-01 17:46:10 6569

转载 http笔记之php与cgi

首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PH

2017-07-31 14:45:47 338

原创 UNIX网络编程阅读建议

- 这本书不能一次性所有都想看完。 >要有目的性的看,因为这本书类似于百科全书所有都讲, 不分轻重, 如果都看,硬啃,只会迷失了自己,反而不知道看了什么 - 这本书不能单独看。 >这本书必须配合TCP/IP详解和UNIX环境高级编程(简称APUE)以及The Linux Programming Interface(不知道这本书的译名是什么, 简称TLPI)来看

2017-07-30 13:34:37 1766

原创 crontab笔记整理

整理crontab

2017-07-29 17:04:04 254

原创 重读UNP(UNIX网络编程)13章到31章笔记整理(结合TLPI和APUE两书的笔记整理)

因为UNP第三部分(第三版13-31章)的内容结合APUE(UNIX环境高级编程)和TLPI(The Linux Programming Interface)来看才能比较清晰,所以笔记整理会穿插很多这两本书的内容13章13.4节:自定义一个daemon_init函数,涉及到知识点为“如何创建一个daemon(守护进程)”,实现步骤如下: fork之后杀掉父进程(此时子进程被init收养)这是为

2017-07-28 02:20:24 934

原创 gdb多进程/多线程调试实战

# **gdb多进程调试**- set follow-fork-mode [parent|child] set detach-on-fork [on|off]|follow-fork-mode | detach-on-fork | 说明| --------------- |:---------------:| -----||parent | on

2017-07-27 11:49:45 2460

原创 重读UNIX网络编程第三章到第十一章笔记整理

因为第二章之后基本都是纯Socket API的内容, 第三章到第十一章的总结合并到一起。第三章3.4 :字节排序函数,涉及到大小端,处理网络字节序和主机字节序的转换3.6 : 地址转换函数,吹在ASCII字符串与网络字节序的二进制值之间转换网际地址第四章4.9节:close函数, 涉及到描述符引用计数,所以多进程并发服务器才可以共享已连接套接字,因为父进程调用close函数知识把该套接字标记

2017-07-27 00:41:15 575 1

原创 重读UNIX网络编程第二章笔记修正

为加深理解, 故本章老笔记内容大幅删减重写. 第二章重点如下 : TCP (Transmission Control Protocol)传输控制协议. 特性如下 : 面向连接全双工可靠, 关心确认/超时/重传等, 保证顺序流量控制字节流, 没有任何记录边界UDP (User Datagram Protocol)用户数据报协议. 特性如下 : 无连接不可靠, 不保证顺序/是否到

2017-06-05 02:00:36 490

原创 重读UNIX网络编程第一章笔记修正

又准备从头看一遍unp, 顺便修正一些之前博客的老笔记. 第一章第二章重点

2017-06-04 22:13:39 400

原创 C++ 易混淆点(一)

2.1.1 : C++标准规定的各种算术类型的尺寸的最小值, 同时允许编译器赋予这些类型更大的尺寸. 比如char的最小尺寸为8位 执行浮点数运算选用double ,这是因为float 通常精度不够而且双精度浮点 数和单精度浮点数的计算代价相差无儿。事实上, 对于某些机器来说,双精度运 算甚至比单精度还快2.1.2 : 当

2017-06-01 17:24:44 413

原创 重新看unix网络编程的一些心得

在这个浮躁人人都能写书的时代基本要看一本书需要挑很久, 谁写的, 写得怎么样, 是否是业界经典, 都要需要一一斟酌各种查证方可, 不然看一本烂书事半功倍, 浪费生命,影响效率, 被误导跑偏, 能让人静下心来的书籍不多学东西不要只是从网上看点大牛的博客总结就行了, 总要完整地看些相关领域的经典著作的, 系统的知识结构打下坚实的基础才能继续看有关优化效率方面的书籍最近不止一次听到当一个人拥有相关领域

2017-05-26 23:04:45 1848

原创 linux常用文本处理命令笔记整理

linux常用文本处理的命令的使用率很高, 所以整理了一些之前的笔记,用markdown来记录备忘。首先抛出问题, 带着问题来学记忆知识更有动力:

2017-01-06 12:18:47 625

原创 Linux常用运维命令笔记整理(重新排版)

在linux服务器开发过程中, 经常需要各种命令配合来查看各种状态,所以整理了一些老的笔记来备忘。iostat iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息-c 仅显示CPU统计信息.与-d选项互斥.-d 仅显示磁盘统计信息.

2016-10-19 20:11:22 11202 1

原创 一个群聚(鱼群)AI插件基于虚幻4(有现成打包好的试玩demo, 源码在GitHub)

Flock-AI-Fish-Unreal-VRA fish flock AI VR demo for Unreal Engine 4. 今天想谈一下群聚AI的实现与优化。 先上菜吧。 这是一个基于虚幻4的鱼群AI的VR demo。

2016-10-19 14:32:25 3672 4

原创 UE4的旋转笔记

--=== 2016.09.13 ===--最近想将一个vector转化为rotator,转而需要考虑UE4到底是怎么旋转的。下面我们做个实验:我们先将两个staticMesh放入场景,并将它们的rotation调成一样,如上图。上面那个为renti_a_gear,下面那个为renti_a_gear2.第一种情况: 绕自身坐标系来旋转如上图,两个static

2016-09-13 11:12:23 14296 3

原创 从零开始搭建一台简易linux服务器

#virtualBox网络设置-------------------在virtualBox的你的那个虚拟机里的网络设置里添加两张网卡:1.“网络地址转换(NAT)”, 不是那个“NAT网络”噢, 这张网卡是用来访问宿主机和外网的, 但是仅仅有这张网卡宿主机是不能访问你的这个虚拟机的, 所以还需要下面这第2张2.“仅主机(Host-Olny)网络”, 这张网卡是用来让宿主机是访问你的这个虚拟机的, 这样就能用ssh工具从宿主机连到你的这个虚拟机了

2016-08-23 15:11:13 1285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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