提示:如有任何疑问可在下方留言或者私信
前言
之前有个客户要求说自己服务器是通过DDE(UniversalDDEConnector)获取别人的MT4行情提供给自己平台的,现在想自己去实现一个DDE 达到不从MT4客户端获取行情,而是其他某平台获取行情。
提示:如有任何疑问可在下方留言或者私信
一、分析
之前没有分析过DDE,所以首先抓包看下他与MT4之间是怎么通讯的有没有加密等

可以看到数据没有加密都是明文传输,这样就简单了,他的流程是:当MT4选择连接DDE的行情插件后,MT4会连接插件中设置的ip和端口也就是dde,MT4连接DDE之后,DDE会首先发送
> Universal DDE Connector 9.00
> Copyright 1999-2008 MetaQuotes Software Corp.
> Login:
MT4返回用户名
> Password:
MT4返回密码。
DDE验证通过后则成功连接
然后DDE返回全部品种的数据给MT4,有个注意的地方是DDE每隔几秒会发送一个心跳包给MT4
> Ping
这样两边的通讯就建立完成了,比想象的要简单
二、代码实现
这种要求高的程序还是在linux上实现比较好,网络框架我使用的是swool,比较成熟的框架比自己实现要稳定。具体使用方法可自行百度
代码
//存储已经插入的fd
$redis = new Redis();
$redis->connect("127.0.0.1",6379);
$table = new swoole_table(1024);
$table->column('msg', swoole_table::TYPE_STRING, 255);
$table->create();
$serv = new swoole_server("0.0.0.0", 2222);
$serv->set
自建DDE服务器实践

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



