Скачать MetaTrader 5

MQL5 клиент не видит Pipe Server на С#

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

Всем приветы и медведы :)

Есть вопрос на миллион :

  • на C# создан Named Pipe Server, который создается и читается отлично (из клиента на С#), также видно, что канал создан через утилиту pipelist
  • пытаюсь создать клиента на MQL5, но он в упор не видит канал сервера ... есть ли идеи почему так и как проверить, что и сервер и клиент ссылаются на один и тот же физический путь к файлу?

Сервер C# :

NamedPipeServerStream pipeStream = new NamedPipeServerStream("MQL5", PipeDirection.In, 1, PipeTransmissionMode.Byte) --> пробовал также указывать путь \\\\.\\pipe\\MQL5

Клиент MQL5 :

CFilePipe iPipe;

while(IsStopped() == false)
{
    Print("Этот цикл не заканчивается потому что нет коннекта");
    if (iPipe.Open("\\\\.\\pipe\\MQL5", FILE_READ | FILE_WRITE | FILE_BIN) != INVALID_HANDLE) break;
    Sleep(250);
}
Heroix
1258
Heroix  
Статьи на этом ресурсе о пайпах читали?
Andy
564
Andy  

вот эти две

  1. https://www.mql5.com/ru/articles/503
  2. https://www.mql5.com/ru/articles/115 - это не мой случай потому что хотелось бы обойтись без импорта DLL

но тем не менее, я здесь ...

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

ой, похоже, я протупил или оно так устроено, сервер обязательно должен быть двунаправленный PipeDirection.InOut

хотя, опять же, C# Client <-> C# Server работает даже с PipeDirection.In

вобщем, все решилось, хеппи енд, спасибо за участие :)

Alex19791979
21
Alex19791979  

 PipeDirection.InOut стоит и pipe канал я вижу через утилиту.А MT5 его не видит?

В чем проблема то? 

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