魔兽争霸校园网联机工具

魔兽争霸校园网联机工具,只要有一方能够ping通另一方即可使用,最好是校园网环境,两方能够直接通信,非校园网估计够呛
因为没有云服务器,所以无法提供那种哪里都能联机的服务端
如果有云服务器做个对战平台也不是难事
项目地址:https://gitcode.net/qq_45704640/warcraftbattletool.git
里面有release的程序包

原理很简单

依赖于魔兽争霸自带的局域网对战系统 创建对局的称为服务器 不创建对局的称为客户端
此系统的原理是当客户端打开局域网对战时,客户端监听6112/UDP端口,向局域网发送一个广播,广播中有数据,声明自己的存在
当有一个服务端创建局域网对局之后,此服务端会监听6112/UDP,这时就可以收到客户端广播的信息
当服务端收到客户端广播信息之后,就会根据广播的源ip和端口发送对局信息
当客户端收到对局信息之后就会显示对局,点击加入即可进入对局

对战平台原理

C/S 架构 其实不是真正的C/S架构,没有公网环境下的服务器
1:模仿客户端,向创建对局的服务端发送udp报文声明存在
2:模仿服务端,向客户端发送对局信息

遇到的问题

此架构有一个问题,就是客户端和服务端都会监听6112端口,对战平台无法使用socket模仿发送信息

解决办法

使用scapy,直接发ip报文,就无需监听端口,但是需要安装Ncap或winpcap,此外使用scapy进行嗅探可以截取客户端或服务端发送的报文,以便于转发数据

注意

使用scapy模仿服务端直接给客户端发送对局信息,客户端收到后无法显示对局,可能是获取的服务端对局信息不对,据推测这个对局信息会针对每个客户端做修改。如果能够完全解析出这个报文的意思应该也能实现,模仿服务端发送对局信息,出于成本问题,本人对此数据就不做分析了,直接用模仿客户端的方法来实现。

代码实现原理

代码中使用socket来发送udp数据包,用来检测对局是否存在
使用scapy模拟客户端发包,用来告诉服务端客户端的存在,让其发送对局信息给客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值