文章 "使用命名管道与 MetaTrader 5 进行无 DLL 通信" - 页 6

 
Igor Semyonov:

我有这样一个问题:

文章中写道

通过双重检查连接服务器:连接到名为 "RemoteServerName "的远程计算机或本地计算机。在本地计算机上一切正常,没有任何问题。

但如果在远程 VPS 上运行 PipeServer.exe,然后将客户端脚本发送到另一台电脑上的图表,并将 RemoteServerName 更改为属于 VPS 的名称,那么服务器和客户端就无法看到对方,也就是说,通道不起作用,没有连接。

这里的问题出在哪里?是 PipeServer.exe 初始化时应写入特定 VPS 的名称,还是其他什么原因?

我们很想知道解决方案、

如果开发人员指定了将其用于远程计算机的可能性,那么它应该可以工作。

我希望这里的开发人员能举例说明如何在远程计算机 上实现这一功能。

 

是否有人在使用这个客户端?用来做什么?

我在开头读到

"终端的脚本将连接到该服务器并与之交换数据"。

请问,如何通过该服务器连接运行在两个不同终端上的两个客户端?根据我对服务器和测试的理解,只有一个客户端连接到服务器,而这个服务器能对收到的信息做什么?

难道不需要

1) 一个独立的服务器等待多个客户端、

2) 每个客户端通过发送自己的唯一 ID 开始连接、

3) 服务器向每个已连接的客户端发送服务器收到的任何信息--除了从哪个客户端收到的信息、

4) 服务器以发送信息的客户端的唯一 ID 开始发送每条信息?

- 这样,客户端就能检测到自己的信息,并删除它们--如果它们是由服务器发送回来的,不管是什么原因。

- 这样,客户端就能检测到它应该监听的客户端(必须是客户端 mq4 代码的一部分)。

 
我完全不明白这一点!服务器如何处理我从另一个客户端获取的数据?
在这里,我提出了一个合理的解决方案:链接到英语讨论
非常感谢,Calli。
 

此处提供的解决方案不适用于异步命名管道。请参见 https://www.mql5.com/en/forum/94343

Newgel

MQL5 Asynchronous named pipes?
MQL5 Asynchronous named pipes?
  • www.mql5.com
I´m trying to integrate MT5 with an external Named Pipe Server application written in C# through named pipes...
 

下午好,MetaQuotes。

您能否告诉我是否有计划在 MQL4/5 中添加一个类似于 WinAPI 中 WaitNamedPipe() 的函数?

有了这个函数,MQL 客户端就不必在等待服务器打开通道实例的过程中,通过FileOpen() 无限循环地查询通道了。这在等待时间较长时尤其有用。

 
codesurfer:

下午好,MetaQuotes。

您能否告诉我是否有计划在 MQL4/5 中添加一个类似于 WinAPI 中 WaitNamedPipe() 的函数?

有了这个函数,MQL 客户端就不必在等待服务器打开通道实例的过程中,通过 FileOpen() 无限循环地查询通道了。这在等待时间较长时尤其有用。



此类问题最好通过您的个人资料在 Service Desk 中提出。
 

您好。

我启动 PipeServer.exe,在调试模式 下运行 pipeclient.mq5 脚本。脚本在这里循环:

//--- 等待管道服务器
   while(!IsStopped())
     {
      if(ExtPipe.Open("\\\\REN\\pipe\\MQL5.Pipe.Server",FILE_READ|FILE_WRITE|FILE_BIN)!=INVALID_HANDLE) break;
      if(ExtPipe.Open("\\\\.\\pipe\\MQL5.Pipe.Server",FILE_READ|FILE_WRITE|FILE_BIN)!=INVALID_HANDLE) break;
      Sleep(250);
     }

我做错了什么?

系统:Windows 7 Ultimate (x64 based PC),IE 11.00,RDP,UAC,AMD FX-8300 八核处理器,内存:5601 / 8190 Mb,硬盘:14763 / 114370 Mb,GMT+02:00
终端:MetaTrader 5 x64 build 1643 已启动 (MetaQuotes Software Corp.).

附注:我以管理员身份运行 PipeServer。

 

谁能帮助推出 MQL5+python 测试捆绑包?我愿意补偿人工成本。

我需要一个 从 Python 脚本实现函数调用 的工作示例

我想 在 MQL5 中 创建一个 与 Python 脚本交互的函数,但不是通过文件。我需要快速交换参数。

如果能提供任何示例,例如,从 MT 传递一些数字,然后 Python 脚本将数字总和返回 MT,我将不胜感激。


 
mavar:

谁能帮助推出 MQL5+python 测试捆绑包?准备补偿劳动力成本。

我需要一个 从 Python 脚本实现函数调用 的工作示例

我想 在 MQL5 中 创建一个 与 Python 脚本交互的函数,但不是通过文件。我需要快速交换参数。

如果能提供任何示例,例如,从 MT 传递一些数字,然后 Python 脚本将数字总和返回给 MT,我将不胜感激。


我用 C# 实现了服务器,我认为一切正常。在 Python 上,我认为难度不大。

 

是否计划在程序库中添加一个函数,用于检查服务器连接是否打开?据我所知,现在还没有这样的函数。

即使失去了与服务器的连接,句柄也会保留非零值。