您的位置:首页 > 理论基础 > 计算机网络

网络版俄罗斯方块实验

2013-05-15 18:41 106 查看
曾经用Delphi 开发了俄罗斯方块,后来用QT改写了代码,并且运行在Moto A760 手机的原型上
后来又熟悉了ACE,花了3天时间进行网络版实验,现在总结一下开发过程

1) 开发分成3个部分

 a. 俄罗斯方块的逻辑, 这部分将运行在Server 上

 b. 接受用户input 和 绘图的逻辑,这部分将运行在client 上

c.  通信程序,主要是构造,通信协议包(比较简单的)

2) 这次开发的难点在于不熟悉C# 和VC2008

首先选择C#,没想到C#解包如此麻烦,改用VC2008发现这东西和C#有共性,就是花费很大的代价给用户提供autoptr.

 好不容易熟悉了一下,又发现找不到ntoh等函数,最后都google解决

3) 开发经验

  1)通信的程序定义为公共 .h, 这样 gcc 和 vc 都可以用

  2)选择VC2008做客户端,可能节省很多时间,因为这就是RAD C++ Builder的替代

3) 目录组织

proj ----Server

----Client

公共的东西,就link吧

  4)  开发的时候IDE的使用

      g++ 代码( 游戏逻辑,本地测试 ) 用Eclipse+MingGW

      Client用VC2008,

      Server 主程序用 UtraEdit

     Server控制用 ( VNC)

这样并行修改,并行测试,几个环境不影响, 不会造成代码混乱

  5)  开发时,注意逻辑能写好,就尽量写好,在网络应用中尤其容易丢三落四,在 C/S 测试中找Bugs,代价很大,因为要启动 Server, 启动Client, 设断点,看Blog, 一个小笔误,可能耽误自己15分钟以上  

  6) 网络测试的确是比较复杂的,观察 Server的log 重要, 不过最重要还是要有清晰的思路,定位问题所在

补充

  ntoh* 用起来不爽,尤其当传送 Int 数组的时候

最好用char * 来表示整数,并传输



这是几年前写的文章, 作为回忆和归档

以前用 ACE 开发, 数据包是自定义的 binary, 虽然有ACE提供包裹好的接口, 但开发依然费时费力.

如果改用 Web Service ,并用 Json 等容易转化的协议,开发效率会高很多.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: