Pipe каналы

 

Перебрал обе статьи с этого сайта по именованным каналам.

Запустил сервер. запустил пробные коды, но так и не понял - как можно отправить из одного терминала строку, а на другом ее прочитать

Покажите простой пример как это сделать, пожалуйста.  

 

Те-же файлы (файловый обмен), только в профиль. 

https://www.mql5.com/ru/articles/115

Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
  • 2010.07.01
  • investeo
  • www.mql5.com
В течение некоторого времени я думал над возможными способами взаимодействия между терминалами MetaTrader 5. Моя цель состояла в том, чтобы использовать тиковый индикатор и показывать тики от различных поставщиков котировок в одном из терминалов. Естественное решение было в использовании отдельных файлов на жестком диске - один терминал будет...
 
Yuriy Asaulenko:

Те-же файлы (файловый обмен), только в профиль. 

https://www.mql5.com/ru/articles/115

Ну вот у меня что то не получилось ничего 
 
Dmitiry Ananiev:
Ну вот у меня что то не получилось ничего 

Сами принципы лучше, наверное, здесь. - https://www.mql5.com/ru/articles/503

Но, честно, статью не читал, а только просмотрел. Имхо, pipes не лучший способ взаимодействия.

Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • 2012.10.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное...
 

Перебрал обе статьи с этого сайта по именованным каналам.

Запустил сервер. запустил пробные коды, но так и не понял - как можно отправить из одного терминала строку, а на другом ее прочитать

Покажите простой пример как это сделать, пожалуйста. 

Привет.

Когда-то по их статье делал обмен данными. Повырезал лишнее. Попробуй testPipe1 на одном терминале, а testPipe2 на втором запустить.

И в исходниках сервера на С++, замени текст их файла "PipeServer" на тот, что в архиве. Перекомпилируй и запускай.

Советники по Таймеру работают, поэтому на выходных можно проверять. В журнале будет видно, что каждые 5 секунд происходит получение чисел из другого терминала.


Файлы:
 
Yuriy Asaulenko:

Сами принципы лучше, наверное, здесь. - https://www.mql5.com/ru/articles/503

Но, честно, статью не читал, а только просмотрел. Имхо, pipes не лучший способ взаимодействия.

Пробовал pipes под Windows, запомнилось, что иногда рвалась связь. И обмен был байтовый, приходилось на приемном конце данные парсить. Хотя, например на MS SQL Server есть такой способ связи.

ИМХО, Memory mapping гораздо быстрее и удобнее, и сервера не нужно. Читал где-то, что pipes как раз основаны на Memory mapping. 

 

Как из одного терминала передать команду в другой терминал?

например, выгрузить советник

?

 

Единственным недостатком пайп является необходимость наличия сервера. Поскольку МТ поддерживает только клиентский пайп.

ИМХО.


 
Между терминалами нужен прокси сервер.
 
Renat Akhtyamov:

Как из одного терминала передать команду в другой терминал?

например, выгрузить советник

?

через файл в общей папке. Если на одном счете - можно выставить отложку. Второй терминал, увидев ее, перемещает - знак первому терминалу, что команда принята, и выполняет предписанное действие

 
xFFFF:
Между терминалами нужен прокси сервер.
e33:

через файл в общей папке. Если на одном счете - можно выставить отложку. Второй терминал, увидев ее, перемещает - знак первому терминалу, что команда принята, и выполняет предписанное действие

а, ну да

чо это я...

)

то есть из одного терминала в другой передаем любой признак и по условию совпадения этого признака выполняем команду

Прокси в этом случае не нужен и файл тоже

Прямое общение

Причина обращения: