要求使用C++开发
架构:游戏客户端 --> LSP --(自定义协议)--> 中转中心 --(任意协议)--> 代理服务器 ----> 游戏服务器
自定义协议:
TCP:
LSP 拦截Connect,修改目的地址为 中转中心 地址
发送一个数据给 中转中心,数据格式为 remoteip remoteport pid
之后所有 游戏客户端 的数据直接发给中转中心
UDP:对每一个 游戏客户端 的数据进行封装,在数据头部添加 remoteip remoteport pid
为什么使用自定义协议:减少 LSP 与 中转中心 的握手次数提高性能,而且 LSP 所处的环境很特殊,数据交换比较困难。
中转中心:
对内接口使用 自定义协议 进行通信
对外接口可以使用任意协议
为什么使用中转中心:(或者在LSP代码里面建立连接管理)
LSP 与 中转中心 建立连接时,先不与 代理服务器 建立连接,而是直接向 LSP 返回连接成功,这与[url removed, login to view]的做法相同。根据前期测试发现,这种做法才能保证游戏客户端不会造成没有响应的现象。
因为 中转中心 处于本地,所以 LSP 与 中转中心 的通信非常快,本质上只是内存的拷贝。
对于后期的扩展,不需要修改 LSP 的代码,只需要将 中转中心 对外接口所使用的协议进行修改,就能够支持任意协议的代理服务器。
(1)需要有LSP的安装与卸载,并能检测是否已经安装,并封装成DLL,供调用。
(2)开发的LSP中要求可以导出一个供设置代理IP及端口,帐号密码的函数。
(3)并提供一个易语言来安装及卸载LSP的DEMO。
(4)能指定进程走socks5 比如指定某游戏,支持32位及64位进程。
(5)支持TCP和UPD。支持http、https、socks5。
接包方 | 国家/地区 | |
---|---|---|
![]() |
7
Zhangyuebb
|
北京市 |
![]() ![]() |
3
Zhixiangkeji8
|
大连市 |