棋牌高防服务器架设教程

棋牌高防服务器架设教程q8803582

一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码。关于这个项目,有很多地方值得聊一聊。本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意的地方。这个项目的一个特别之处是,客户端是手机,用户通过移动网络与服务器通信。和PC相比,手机的处理能力极弱,而且网络流量费用昂贵。因为除了要考虑普通网络游戏的一些问题之外,这两点也需要在设计中充分考虑。首先是开发语言的选择,由于服务器是Linux的环境,MS的技术直接排除,至于MONO嘛,我实在不放心。可供选择的是C++和Java,Java胜在网络能力强大,开发周期短,有众多框架和开源库的支持,要写出烂得不可接受的代码也不容易;C++则胜在速度快。综合各方面因素,C++更容易把这个项目变成一堆代码噩梦,我们选择了Java。

一、网络

网络游戏,首先面临的问题当然是如何进行网络通信。首先考虑的是HTTP协议,因为所有的J2ME手机都支持这个,我们当然想尽可能的兼容用户。而且HTTP协议封装程度已经非常高了,不用去考虑线程、同步、状态管理、连接池,不过HTTP协议有两个不爽的地方: 
  ◇ 协议无状态,这个问题已经困扰过很多人很多次了。我曾考虑过的解决办法是改造HTTP协议,在数据传输完成之后不关闭socket,但是这样做工作量非常大,在项目周期中,基本上就是Mission impossible,不予考虑。那么客户也就只能通过轮询的方式向服务器请求数据。 
  ◇ 网络流量过大。就这个项目来说,网络间传递的只是指令,但是每次传递都要加上一堆毫无用处的HTTP Head,再加上客户端需要做轮询,这个流量对于手机来说简直恐怖,经简单测试,按照0.03元/K的GPRS网络费用计算,一局牌居然要消耗1元多的费用(每秒轮询),实在不可接受。也许我们可以采用流量费包月的资费方式,不过这个话题与技术无关。 
  以上问题导致我们选择了Socket,这意味着我们将没有一个web环境,很多东西都要靠自己去实现:线程管理、客户状态监控、对象池、控制台……….网络部分打算采用Java NIO来实现,这是一种新的网络监听方式,基于事件的异步通信,可以提高性能。每个客户端连接之后,会有一个独立的SocketChannel与它通信,这个SocketChannel会在用户的整个生存周期中存在。用户如果断开连接,服务器会得到-1,并且会抛出Connection reset异常,通过捕获这两个特征,可以在用户意外断开连接后清理相关的资源。由于NIO是异步通信的,所以没有复杂的线程管理。

二、通信协议

这个项目并没有复杂的通信指令,命令数量很有限,但是还是有个关键问题需要关注:流量。为了尽量减小流量,我们使用字节代替字符串来保存系统指令,这样可以使流量减少一半,比如使用一个字节来保存一张扑克牌,字节高位表示花色,字节低位表示数字,如果0代表黑桃,那么黑桃三就应该是0x03,这个需要靠位操作来实现:

  int m=0;    int n=3;    byte card=(byte)(m)<<4)|((byte)n; //m左移四位,然后与n左或操作 123123

游戏中需要传递用户的积分,这是一个大整数,使用四个字节来保存比较保险,将整数转换为四个字节的操作如下:

  package org.bromon.games;       public static byte[] translateLong(long mark)  {        byte[] b = new byte[4];        for (int i = 0; i < 4; i++) {            b[i] = (byte) (mark >>> (24 - i * 8));        }     }1234567812345678

三、数据库连接池

   
由于没有一个web环境,所以我们需要自己实现一个数据库连接池,apache有一个项目叫做commons DBCP,这是一个基于apache自己的对象池(apache commons pool)实现的数据库连接池,我们可以直接拿来使用,apache的软件未必是的,但是极大可能比我们自己写的要好。Commons DBCP需要三个.jar:commons-collections-3.1.jar、commons-dbcp-1.2.1.jar、commons-pool-1.2.jar这三个文件都可以在apache – Jakarta – commons项目下下载,加入到工程中即可

时间: 2024-10-12 17:39:23

棋牌高防服务器架设教程的相关文章

棋牌高防服务器架构

棋牌高防服务器架构q8803582 首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构.网狐棋牌最令人印象深刻的是其稳定性和高网络负载.它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏. 在研究其服务器框架后发现,它的网络部分确实是比较优化的.它主要采用了Windows提供的IO完成端口来实现其网络组件.本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux

如何选择一个棋牌高防服务器?

一,棋牌类服务器的特点 棋牌菠菜高防服务器q8803582 1,棋牌类不分区不分服 一般来说,棋牌游戏都是不分区不分服的.所以棋牌类服务器要满足随着用户量的增加而扩展的需要. 2,房间模式 即在同一局游戏中就是在同一个房间中,同一个房间中的人可以接收到其他人的消息. 3,每个房间的操作必须是顺序性 这个特性类似与一般游戏的回合制,每个玩家的操作都是有顺序性的. 二,需要解决的技术点 1,数据共享 因为棋牌类游戏不分区不分服,我们在设计服务器的时候,是按世界服的思想去设计,即服务器是一个n多台物理

如何选择棋牌高防服务器

棋牌一般首先是根据棋牌的规模决定的 棋牌服务器选择 1.选择服务器硬件配置需求 2.是选择服务带宽需求 3.服务器防御需求 目前大部分的棋牌前期运行的时候都是会选择阿里云的服器作为基础,因为阿里云前期服务器投资成本不高.但是阿里云有好处和坏处 优点 :阿里云前期成本低费用低,全国节点好访问速度快. 缺点 :阿里云没有防护的机器遇到攻击立马就死,而且阿里云带有防御机器价格贵. IDC机房:高防独立服务器优势就出来了, 当棋牌规模到达一定程度的时候对于防御带宽 有一定需求的时候高防御服务器是一个很不

183.134.17棋牌高防服务器

怎么分别机房防御是否真实 2880990294 1:叫机房提供IP进行压力测试,之后叫机房提供流量图,看看墙上流量图是不是真实 的. 2:自己叫机房提供他们的抗攻击数据流量图,是近期数值较高的. 3:有攻击的服,直接用机房机器免费测两天,测好了之后在谈. 我们是一家专业的互联网数据中心运营商.公司整合了国内的IDC运营.防DDOS 安全服务.智能DNS安防相关领域的专业公司的技术及服务优势,目前位于上海.浙江 .湖南的技术研发中心拥有一支由多名网络安全专家.IDC运营及云计算专家.软件工 程专家

你还在找棋牌 大型游戏专用 高防服务器吗

棋牌 大型游戏专用 高防服务器可咨询QQ:2881375115 棋牌 大型游戏专用 高防服务器可咨询电话:17759186719 棋牌游戏的攻击很大这个是众所周知的,不仅有小组恶意攻击,更有同行恶意竞争 所以,一个棋牌游戏想开的好 做的大必须选用一台好的服务器. 棋牌高防服务器哪里的用着好用? 棋牌高防服务器哪里有,稳定高效的棋牌服务器哪里有,安全稳定. 棋牌高防服务器免备案,高速稳定. 棋牌游戏不同阶段需要的服务器的配置不同,要求的防御也是不一 配置齐全: 高防服务器首选台州棋牌高防双线,99

为您解决棋牌免备案,高防服务器租用托管问题

棋牌高防服务器哪里的用着好用?  联系QQ:2881375115       电话:17759186719 棋牌高防服务器哪里有,稳定高效的棋牌服务器哪里有,安全稳定. 棋牌高防服务器免备案,高速稳定. 棋牌游戏不同阶段需要的服务器的配置不同,要求的防御也是不一 的,这个时候选择一台适合自己的服务器是尤为重中之重的问题!!!! 配置齐全: 高防服务器首选台州棋牌高防双线,99%免疫CC,全国首家800G单机高防,棋牌菠菜首选 拥有自主开发的强大防火墙,棋牌高防服务器租用-棋牌双线高防服务器-棋牌

详细配置架设自己的Serv-U FTP服务器图文教程

首先:Serv-U设置匿名登录帐户的操作是非常简单的 其次:匿名 的英文是:Anonymous 最后:在Serv-U的现有域里新建一个帐户名为Anonymous的用户,没有大小写之分.跟建普通用户不一样:如果匿名用户名 "Anonymous"输入正确的话,它是不会提示你输入密码的,然后直接跑到选择目录那一项,建好用户后给这个用户加权限,然后测试,OK成功 启动Serv-U adminisrator之后,出现如图界面,先看看"本地服务器"这个项目,如图,有个选项是&q

怎么从优选择死扛大流量攻击,大型棋牌游戏高防服务器

需要大型棋牌游戏高防服务器可咨询QQ:2881375115 需要大型棋牌游戏高防服务器可咨询电话:17759186719 大型棋牌游戏高防服务器                大型棋牌游戏高防服务器              大型棋牌游戏高防服务器           大型棋牌游戏高防服务器 大型棋牌游戏高防服务器       大型棋牌游戏高防服务器                大型棋牌游戏高防服务器         大型棋牌游戏高防服务器 我们公司专业做高防服务器已经有七年的时间,熟悉各种攻

最完整的网狐棋牌-新手零基础教程 第一节:棋牌游戏的服务器基本环境的安装

最完整的网狐棋牌-新手零基础教程 第一节:棋牌游戏的服务器基本环境的安装 百度云在线播放地址:http://pan.baidu.com/s/1pJwO50R 密码:t0sm  解压密码:www.ttkmwl.com ----------------------------------------------------------------- 通天源码论坛!专注源码分享,本论坛不仅有web源码,还有棋牌源码,游戏源码,android源码! 致力于打造中国最大的源码分享平台!我们期待您的加入!只