Pipe каналы

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Dmitiry Ananiev
9277
Dmitiry Ananiev  

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

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

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

Yuriy Asaulenko
9361
Yuriy Asaulenko  

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

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

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

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

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

Ну вот у меня что то не получилось ничего 
Yuriy Asaulenko
9361
Yuriy Asaulenko  
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), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное...
Vasiliy Pushkaryov
6956
Vasiliy Pushkaryov  

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

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

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

Привет.

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

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

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


Файлы:
Alexey Volchanskiy
27261
Alexey Volchanskiy  
Yuriy Asaulenko:

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

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

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

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

Renat Akhtyamov
15663
Renat Akhtyamov  

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

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

?

Dmitriy Skub
12003
Dmitriy Skub  

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

ИМХО.


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

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

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

?

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

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

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

а, ну да

чо это я...

)

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий