war3的局域网对战很怪
A建一个房间
B进去就是 B connect A
当C再进入 就是C connect A C connect B
D进去就是 D connect A D connect B D connect C
不是所有的都connect A
拦截CONNECT函数好像并不能实现多人对战
VS HF QQ平台等都是怎么实现的?
VS用冰刃看端口 比局域网多了几个端口 好像不是网上说的什么VPN技术实现的大家可以给给思路吗?
A建一个房间
B进去就是 B connect A
当C再进入 就是C connect A C connect B
D进去就是 D connect A D connect B D connect C
不是所有的都connect A
拦截CONNECT函数好像并不能实现多人对战
VS HF QQ平台等都是怎么实现的?
VS用冰刃看端口 比局域网多了几个端口 好像不是网上说的什么VPN技术实现的大家可以给给思路吗?
那个实现估计是hook了一些socket函数 把同房的人虚拟成在同一个局域网内
所以只对自己产生影响, 如果全局vpn那还得了?!
如果你要写的话可以这样:写一个客户端/服务器程序,每个客户端把自己的IP告诉服务器并由服务器告知其他客户端,然后服务器给每个客户端分配一个局域网地址192.168.1.?也告诉每个客户端,这样每个客户端就知道自己的IP和自己在虚拟局域网内的IP。
具体发送的时候,每个客户端需要把魔兽要发送的数据报捕获,并把它们打包,然后用TCP协议发送到其他客户端,那些客户端接收到信息就解包然后发送给自己的魔兽程序。
具体的问题应该还有很多,但是总的办法就是截获魔兽发到虚拟局域网的数据并用TCP传播到其他客户端,让魔兽始终感觉自己在一个局域网内。
当然VPN等应该也可以,不过需要配置。
一个思路而已,仅供参考。
用户登陆以后就相当于在同一个局域网内。
为什么vs或则浩方要指定游戏的运行程序,比如魔兽争霸。war3.exe,你运行的时候就直接hook到了war3.exe所用端口然后再做nat。
http://download.csdn.net/source/1496640