当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

网络游戏服务器端开辟心得之网络[Java编程]

赞助商链接



  本文“网络游戏服务器端开辟心得之网络[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个计划流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么具体标准,那是计划文档应当描写的,我打算只说说一些值得注意的地方.

这个项目的一个分外之处是,客户端是手机,用户通过移动网络与服务器通信.和PC相比,手机的处理本领极弱,并且网络流量费用高贵.因为除了要考虑普通网络游戏的一些问题之外,这两点也需求在计划中充分考虑.

首先是开辟语言的挑选,由于服务器是Linux的环境,MS的技术直接解除,至于MONO嘛,我实在不安心.可供挑选的是C++和Java,Java胜在网络本领强盛,开辟周期短,有众多框架和开源库的支持,要写出烂得不可承受的代码也不简单;C++则胜在速度快.综合各方面因素,C++更简单把这个项目变成一堆代码恶梦,我们挑选了Java.

1、网络

网络游戏,首先面对的问题当然是若何举行网络通信.首先考虑的是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是异步通信的,所以没有复杂的线程管理.


  以上是“网络游戏服务器端开辟心得之网络[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • win 7系统下若何设置不让孩子沉浸网络游戏
  • 网络游戏服务器端开辟心得之网络
  • J2ME网络编程以及网络游戏的实现
  • 17173网络游戏第一门户sql漏洞及修复
  • 猖獗刷网络游戏点卡_广东活动
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .