`
vanadiumlin
  • 浏览: 493269 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
最近公司要实现在各种网络环境下面的多屏互动(机顶盒、android phone、iphone及PC端)的需求;由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同一个公网IP;例如:如果位于局域网里面的一个终端Agent A要与互联网上的另一个终端Agent B通信,当A发送的data packet经过局域网出口处的NAT设备时,NAT会将data packet里面的source address字段替换成相应的公网IP和Port,然后再发送data packet到Agent B。Agent B看到的source address就是经过转换后的IP和Port并 ...
在服务器的配置文件“AnyChatCoreServer.ini”中网络配置部分,“RoutingPolicy”字段表示了P2P数据路由传输策略的配置信息,可取值分别表示: 1  服务器转发模式, 所有数据传输均由服务器转发(禁止P2P); 2  P2P直传模式,NAT穿透 ...

nat穿透原理

一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序的人员“谈穿透色变”。那么,使用TCP协议是不是就不能实现穿透呢?答案当然是否定的:TCP协议不仅能实现NAT穿透,而且实现起来比UDP穿透甚至还简单一些。 要了解如何使用TCP穿透NAT,就要首先看看如何使用UDP穿透NAT。 ...
Erlang学习记录(二)——基本数据类型 2013-07-27 20:16 865人阅读 评论(6) 收藏 举报 目录(?)[+] Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来。。。反正学起来觉得既不熟悉,也不亲切,我估计在用Erl ...
1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务 ...
附标题:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身 原文:Writing Low-Pain Massively Scalable Multiplayer Servers 介绍 本文以我的OpenPoker项目为例子,讲述了一个构建超强伸缩性的在线多游戏玩家系统。 ...
关于Redis的常识 分类: php开发 学习笔记 2014-02-08 13:49 1639人阅读 评论(0) 收藏 举报 目录(?)[+] 1. Overview 1.1 资料 <The Little Redis Book> ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的Redis ...
redis哈希环,如何解决mget问题? 为了解决redis存储数据量问题,通常会用若干台服务器形成一个环,然后根据数据的key,哈希得到一个值,根据这个哈希值将数据存储到某一台服务器。 现在我遇到一个问题:jedis又一个方法是mget,参数是一批key,然后根据这一批key从服务器获得对应的一批value。如果是根据key的哈希值来确定服务器,那么是不是意味着无法通过一次网络访问,来批量获得这一批value?比如说我有100个key,需要对应的value,如果一次获取,可能耗时为1ms;如果每次只能单个,可能就要100ms;是不是当一次请求耗时主要消耗在redis内部而不是网络传输上的时候, ...
edis在游戏服务器中的应用 Agent`K 最近在使用Redis,忽然发现以前很多费神的事情都迎刃而解了,又应了经典:我们要做的99%的事情,别人都早已做过了! (扫盲:Redis是内存型、键值对型数据库,独立运行,不是第三方库) ...
一个不分服的游戏服务器设计问题? 最近自己想设计一个游戏,类似coc或者海盗骑兵,玩家不用选择服务器。 游戏主要需求: 整个游戏世界有很多村落组成,村落里是若干玩家(比如上线10人)组成,若干村落组成国家。 战斗包 ...
 某一天深夜,单盘配置的服务器出现硬盘损坏,导致该服务器上所提供的服务停止,于是有了开发双机热备服务的想法,经过长时间(半年)的多人的努力,这个东西慢慢就出来了。基于各种原因,这里不能提供相关源代码,仅仅提供设计思想,基本实现思路和实现过程遇到的问题和挑战,顺带记录下这半年努力的成果,若有描述不够详细或清楚的地方,敬请见谅!   1. 稳定性思考   废话不多说,本文所说的服务器特指使用C /C++ 实现的中间件角色的应用服务器,比如DB Proxy(Cache) Server,常规MMORPG架构中的中心服务器,在其整体应用中都是以单点的形式存在,而且所起的作用又及其重要,如何应对各种程序 ...
    对于我们的游戏服务器端来说,除了要满足一般的MMO服务器端功能要求外,还要达到两个附加需求:         1、高可用性                 避免任何服务的单点故障,各种关键服务都提供一定的冗余和故障自动切换机制。         2、动态负载均衡                 游戏世界和游戏场景服务能够根据服务器网络中机器的负载情况,选择合适的宿主机器创建和动态迁移。                 提供场景动态分区的技术,支持单个场景中支持巨量玩家在线。         因此,我们需要设计一个支持不同层面高可用性和负载均衡的游戏服务器集群系统。         下面 ...
Erlang类型及函数声明规格 Author: Mail: Date: Copyright: litaocheng litaocheng@gmail.com 2009.6.8 This document has been placed in the public domain. Contents 概述 意义 规范 类型及其定义语法 自定义类型定义 在record中使用类型声明 函数规范定义 使用dialyzer进行静态分析 生成plt 使用dialyzer分析 参考 概述 Erlang为动态语言,变量在运行时动态绑定,这对于我们获取函数的参数及返回值的类型信息具有一定的难度。 为了弥补这个不 ...
[Erl_Question19]Erlang的config文件读取效率问题 - 学贵有恒 时间 2014-08-23 11:30:00   博客园-原创精华区    原文  http://www.cnblogs.com/zhongwencool/p/erlang_config_transform.html 方法 优点 缺点 1.把配置文件统一读取到存储介质中(ets表或mysql) 统一管理,可以方便跨节点分布Reload, Erlang Application就是把configuration 文件给读到一个叫ac_tab 的ets表 如果频繁大量的读取这个全 ...
一,带函数Pred 1, all(Pred, List) -> boolean() 如果List中的每个元素作为Pred函数的参数执行,结果都返回true,那么all函数返回true, 否则返回false 例子: lists:all(fun(E) -> true end,[1,2,3,4]). 结果 true 2, any(Pred, List) -> boolean() 如果Li ...
Global site tag (gtag.js) - Google Analytics