Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью. Получи вознаграждение!
Andy
565
Andy 2013.08.10 11:29 

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

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

  • на 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
1259
Heroix 2013.08.10 12:12  
Статьи на этом ресурсе о пайпах читали?
Andy
565
Andy 2013.08.10 13:26  

вот эти две

  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
565
Andy 2013.08.10 13:38  

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

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

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

Alex19791979
21
Alex19791979 2016.09.28 19:21  

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

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

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