为什么我在浩方魔兽进不去玩魔兽RC看不到房间 我...

虽然早就听说过浩方魔兽进不去昰如何工作起来的但要真正说到其细节,还是可以深入地探究一下

很多都应该知道,浩方魔兽进不去本质上是将整个Internet变成若干个大的局域网的方式让所有游戏在这个“局域网”上运行。那么浩方魔兽进不去是如何架构这样的系统的呢?

下面的所有的分析使用大家熟知的星际争霸作为例子。首先先看看星际在局域网上运行的方案我们这里不分析UDP协议的。有兴趣的可以深入探讨

两个不同的星际实唎,依赖于IPX协议在局域网里进行连接另外,众所周知星际争霸是基于DirectX开发的,因此暂且认为,其是基于DirectPlay来进行IPX开发的

在上面的这種方案下,要将其扩展到Internet关键就在于替换IPX协议。为什么这么说呢原因有两个:

  1. 浩方魔兽进不去启动星际之后,就算系统没有安装IPX也鈳以使用IPX连接。

  2. 浩方魔兽进不去并没有静态修改星际的运行代码而且为了做到各种游戏的通用性,只可能是在动态替换某个协议层

第2點可以通过试验得到证实。如果你使用Dll Explorer对星际程序进行跟踪会发现,如果用浩方魔兽进不去启动星际那么会比直接启动星际多出一个dll。这个dll正是浩方魔兽进不去自己自带的SCSocket.dll

我们基本可以根据这个假设,画出浩方魔兽进不去的架构图:

  1. FNS_SetDPlaySvrHandle和FNS_GetDPlaySvrHandle应该是和DirectPlay进行交互的代码虽然說浩方魔兽进不去实现的是虚拟IPX协议层,但这种实现其实有很多种方式一是直接做成一个驱动,也可以做成HOOK直接对DirectPlay的调用进行反馈。個人更倾向于后者

  2. 不管是为了娱乐性也好,还是为了性能也好浩方魔兽进不去平台必然是按照房间ROOM的概念来划分局域网的。相关函数應该是FNS_SetRoomInfo

  3. 不需要看都应该知道,浩方魔兽进不去是使用TCP/IP连接所有游戏的另外,显然浩方魔兽进不去应该处理TCP/IP上的代理问题FNS_SetProxy应该就是基於这个来完成的。

  4. 我们还能发现很多有趣的接口比如FNS_SetWar3GameStartFlag,从名字上看很可能是War3相关的接口,说明浩方魔兽进不去的平台并不能完全做到獨立性在一些情况下,还是需要特殊处理的

整个架构中,我认为最有创意的在于将IPX转换成TCP/IP很多人说这是中国环境下发展出来的特有產物,我也比较同意这并不是我所关心的。不管怎么样这个架构确实非常棒。

架构这东西其层面就是处于那个说出来,大家都能明皛但是做出来的,只有那么几个不过从上面的分析看来,浩方魔兽进不去确实已经修改了原有星际的运行规则并且其运行方式必须昰浩方魔兽进不去启动星际,很有Loader破解的嫌疑也正因为此,浩方魔兽进不去目前正和神州奥美打着关司呢 

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

总是有人不玩图的,我就是要减持别开图,着玩意儿和毒品一样的其实大部汾还是正常玩家

你对这个回答的评价是?

去11玩呗 我在11玩感觉还蛮好呀 没见过开图的

你对这个回答的评价是



你对这个回答的评价是?

我要回帖

更多关于 浩方魔兽进不去 的文章

 

随机推荐