java 对战平台-魔兽版

本文详细介绍了使用Java构建魔兽对战平台的技术实现,包括监听主机地图信息、模拟主机广播和解析地图包。通过监听主机每5秒发送的包来获取地图信息,解析地图包以获取游戏详情,并通过发送特定UDP包通知其他客户端。同时,文章讨论了网络速度需求和关键的UDP包结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分为两部分

 

1.CS版本的Client和Server端,Server负责发送包和维护socket链接。

 

2.java对魔兽的抓包处理

 

关键技术

1,监听主机(建立了魔兽地图的机器)的地图信息。
     
      有两种方法能获得地图信息,一种是抓包,把所有的和6112端口有关的包都抓过来分析。(个人觉得这样电脑的负担太大了)。现在的多数搜索器都是这样实现的。
       
      建立一个线程。每5秒钟发送一个包收索本机是否建立主机。如果自己建立了主机,则会返回一个地图信息包。收到之后告诉其他ip“我建主了”;
      这样客户端就不需要一直发送搜索包了。
      找到了主机,一切都好办了。
 2,告诉别人我建主机了
      如何告诉别人我建立了主机。很简单,建立了主机的魔兽会每5秒钟发送一个包给当前网段,告诉别人我建主机了。
      我们只要把这个包发送到其他ip的6112端口就ok了。就是告诉别人“我建主了”,收到的人就会发送一个包:“看看什么图”,然后主机就会回复一个包,没错这就    是地图信息!
     
 3,解析地图
      不解析地图不会对游戏产生任何影响。因为魔兽接受地图包,自己解析,它很明白这图是什么。但是解析地图,你可以知道主机建立的这个地图是什么,主机叫什么    名字,有几个人加入,有几个电脑。还有几个空位置。主机是什么版本。这些很有用的信息在软件上显示出来时很有用的!

 

 网速需求:一场游戏下来,和主机发送的包 大概25MB(半小时) 主机收发的包就是 9*25 MB/30 min ;//按照dota计算 一个主+9个客户端的10人游戏。 这样粗略的估计主机的网速要求就是 9*25*1024/30*60=128>100 kb/s 加上一点点别的程序所要的通讯包。要想不卡,主机的网速需要保证这个数。

主要UDP包:
收索包:
内容:F7 2F 10 00 50 58 33 57 15 00 00 00 00 00 00 00
功能:向主机提出收索信息。问别人“你建什么主机?”
在打开魔兽进入局域网的时候,会向当前网段(255.255.255.255)广播这个包。只要条件符合,收到这个包的主机都会返回一个地图信息给他(他:这个收索包的IP端口)
主机包:
内容:F7 32 10 00 00 00 00 00 01 00 00 00 00 00 00 00
功能:告诉别人:“我建主机了,要不要看看。”
建立主机的时候开始,向当前网段广播这个包,每5秒钟一次。收到这包的客户机会发送搜索包。
地图包:
内容: 
F7 30 8C 00 50 58 33 57  14 00 00 00 01 00 00 00 
39 69 C2 00 E5 BD 93 E5  9C B0 E5 B1 80 E5 9F 9F 
E7 BD 91 E5 86 85 E7 9A  84 E6 B8 B8 E6 88 8F 20  
28 76 73 00 00 01 03 49  07 01 01 77 01 B9 79 01  
99 D5 B9 31 4D CB 61 71  73 5D 45 6F 77 19 6F 6D  
6F 61 65 5D 45 2B 6F 75  41 21 41 6D 6D 2B 73 75 
61 73 73 21 77 B1 37 2F  37 31 63 2F 77 23 33 79  
01 77 73 01 01 00 0A 00  00 00 01 00 00 00 01 00
00 00 0A 00 00 00 1B 00  00 00 E0 17             
功能:“这就是我所建的图,你好好看。”
主机收到搜索包之后就把这个包返回给他,包括所有有用信息。

解析地图包的java代码

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值